Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 1 year ago
parent
commit
2fc6c3ae0f
  1. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.xml
  2. 9
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationDetailsVo.java
  3. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.java
  4. 10
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.xml
  5. 429
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java
  6. 16
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java
  7. 9
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationDetailsVo.java
  8. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  9. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  10. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java
  11. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml
  12. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  13. 531
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  14. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingMapper.java
  15. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java
  16. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java
  17. 9
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoVo.java
  18. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java
  19. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java
  20. 5
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java
  21. 127
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java
  22. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java
  23. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItem.java
  24. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemDetailsVo.java
  25. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemDto.java
  26. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemVo.java
  27. 19
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageDetailsVo.java
  28. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageQuery.java
  29. 11
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageVo.java
  30. 15
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageAttachItemVo.java
  31. 15
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageGoodsVo.java
  32. 36
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageItemVo.java
  33. 12
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  34. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceitem/AsServiceItemService.java
  35. 98
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageService.java
  36. 2
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsmanufacturer/WmsManufacturerFeign.java

9
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.xml

@ -477,9 +477,10 @@
select * from base_vehmodel_config WHERE modelSid = #{modelSid} and configurationItemsSid = #{configSid} and useOrgSid = #{useOrgSid}
</select>
<select id="getVehModelByCreateOrg" resultType="com.yxt.anrui.base.api.basevehiclemodel.BaseVehModelVo">
SELECT sid,
modelName
FROM base_vehicle_model
WHERE createOrg = #{createOrg}
SELECT DISTINCT
m.sid,
m.modelName
FROM base_vehicle_brand as b LEFT JOIN base_vehicle_model as m ON b.sid = m.carBrand
WHERE m.createOrg = #{createOrg}
</select>
</mapper>

9
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationDetailsVo.java

@ -163,4 +163,13 @@ public class BusBillApplicationDetailsVo implements Vo {
@ApiModelProperty("出库申请sid")
private String ckSid;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.java

@ -40,6 +40,7 @@ import com.yxt.anrui.buscenter.api.busbillapplication.*;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import org.apache.ibatis.annotations.Mapper;
@ -101,4 +102,8 @@ public interface BusBillApplicationMapper extends BaseMapper<BusBillApplication>
BaseVehicle selectByVinSid(String vehSid);
CrmCustomerTemp selectByCustomerSid(String openTickSid);
BaseVehicle selectVinNoByVinSid(String vehSid);
BusSalesOrderVehicle selectByBorrowSid(@Param("contractNo") String contractNo, @Param("vehSid") String vehSid);
}

10
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.xml

@ -129,4 +129,14 @@
<select id="selectByCustomerSid" resultType="com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp">
select * from anrui_crm.crm_customer_temp where sid = #{openTickSid}
</select>
<select id="selectVinNoByVinSid" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicle">
select * from anrui_base.base_vehicle where sid = #{vehSid}
</select>
<select id="selectByBorrowSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select bv.* from anrui_buscenter.bus_sales_order_vehicle bv
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
where bv.linkSid = #{vehSid} and bo.contractNo = #{contractNo}
</select>
</mapper>

429
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java

@ -53,6 +53,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.biz.busbillfile.BusBillFileService;
import com.yxt.anrui.buscenter.biz.busbilltrailer.BusBillTrailerService;
import com.yxt.anrui.buscenter.biz.busbillvehicle.BusBillVehicleService;
@ -68,8 +69,11 @@ import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationDto;
import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicing;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.common.base.config.component.DocPdfComponent;
@ -122,6 +126,8 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
private LoanSolutionsFeign loanSolutionsFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private LoanNoGuaranteeCreditReviewFeign loanNoGuaranteeCreditReviewFeign;
public ResultBean<String> saveOrUpdateDto(BusBillApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
@ -495,6 +501,35 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
if (data != null) {
vo.setShowValueCustomer(!data.getSingleFinalPrice().equals(entity.getOneBillMoney()));
}
//生成的合同下载地址
String allDownloadUrl = "";
if(StringUtils.isNotBlank(entity.getFileUrl())){
allDownloadUrl = docPdfComponent.getPrefixTemplateUrl()+entity.getFileUrl();
vo.setAllDownloadUrl(allDownloadUrl);
}
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
vo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
vo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(loanSolutions != null){
if(StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())){
vo.setOrderInvoicePrice(loanSolutions.getMainVehicleAmount());
}
}
return vo;
}
@ -1077,7 +1112,7 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
return fileUrl;
}
public void createContractNo(BusBillApplicationDto dto){
public String createContractNo(BusBillApplicationDto dto){
/* try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -1091,5 +1126,397 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}*/
// String fileUrl = getFileUrlNew(dto);
String fileUrl = "";
return fileUrl;
}
public String getFileUrlNew(BusBillApplicationDto dto) {
String fileUrl = "";
String contractNo = dto.getContractNo();
List<File> filesList = new ArrayList<>();
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
List<BusBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
//按开票名称sid分组
Map<String, List<BusBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(BusBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
Map<String, Object> filemap = new HashMap<>();
Map<String, Object> checkMap = new HashMap<>();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) {
BusBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<BusBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<BusBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
BusBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicingDetailsVo != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (BusBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//乙方
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//乙方证件号码
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
} else {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//乙方
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//乙方证件号码
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid", busSalesOrder.getSid());
ResultBean<Map<String, Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey());
}
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
}
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同
List<BusBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (BusBillVehicleDto v : finBillVehicles) {
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBorrowSid(dto.getContractNo(), v.getVehSid());
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {//登记在挂靠公司
v.setOpenTickSid(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompanySid());
v.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
v.setBillTypeKey(busSalesOrder.getBillingTypeKey());
v.setBillTypeValue(busSalesOrder.getBillingType());
}
}
//按开票名称sid分组
Map<String, List<BusBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(BusBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
BusBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<BusBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<BusBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
BusBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicingDetailsVo != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (BusBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}
}
if(StringUtils.isNotBlank(fileUrl)){
BusBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
}
return fileUrl;
}
}

16
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java

@ -0,0 +1,16 @@
package com.yxt.anrui.fin.api.finbillapplication;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/11
**/
@Data
public class DownloanVoUrl {
@ApiModelProperty("整体附件下载地址")
private String allDownloadUrl;
}

9
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationDetailsVo.java

@ -185,4 +185,13 @@ public class FinBillApplicationDetailsVo extends AppBillApplicationIInfoVo imple
private List<FinBillFileVo> cldjhtApplicationAppendxs; // 车辆登记合同
@ApiModelProperty("欠款领票附件")
private List<FinBillFileVo> arrearsCollectionAppendxs;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java

@ -274,4 +274,9 @@ public interface FinBillApplicationFeign {
@GetMapping("/selectByCon")
@ResponseBody
ResultBean<FinBillApplicationDetailsVo> selectByCon(@RequestParam("contractNo") String contractNo);
@ApiOperation("点击生成附件")
@PostMapping("/saveInvoicedApplyInfoPdf")
@ResponseBody
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(@RequestBody FinBillApplicationDto dto);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java

@ -286,4 +286,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
public ResultBean<FinBillApplicationDetailsVo> selectByCon(String contractNo) {
return null;
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
return null;
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java

@ -120,4 +120,6 @@ public interface FinBillApplicationMapper extends BaseMapper<FinBillApplication>
CrmCustomerTemp selectByCustomerSid(String openTickSid);
BaseVehicle selectVinNoByVinSid(String vehSid);
BusSalesOrderVehicle selectByBorrowSid(@Param("contractNo") String contractNo, @Param("vehSid") String vehSid);
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml

@ -223,4 +223,10 @@
<select id="selectVinNoByVinSid" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicle">
select * from anrui_base.base_vehicle where sid = #{vehSid}
</select>
<select id="selectByBorrowSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select bv.* from anrui_buscenter.bus_sales_order_vehicle bv
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
where bv.linkSid = #{vehSid} and bo.contractNo = #{contractNo}
</select>
</mapper>

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java

@ -345,4 +345,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
public ResultBean<FinBillApplicationDetailsVo> selectByCon(String contractNo) {
return finBillApplicationService.selectByCon(contractNo);
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
return finBillApplicationService.saveInvoicedApplyInfoPdf(dto);
}
}

531
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -63,6 +63,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderContractNoDto
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderModelInfoVo;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderPriceInfoVo;
import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinListsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
@ -227,6 +229,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
@Autowired
private LoanNoGuaranteeCreditReviewFeign loanNoGuaranteeCreditReviewFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
@ -466,21 +470,67 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())){//担保
String jfkcSid = loanHomevisitInvestigateFeign.selSaleOrderSidAndBorrSid(record.getBusSalesOrderSid(), busSalesOrderVehicle.getBorrowerSid()).getData();
LoanHomevisitInvestigateCustomerDetailsVo loanHomevisitInvestigateCustomerDetailsVo = loanHomevisitInvestigateCustomerFeign.selectByMainSid(jfkcSid).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
record.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerName());
record.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
record.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByTaxpayerNo(loanHomevisitInvestigateCustomerDetailsVo.getAccCompRegistNum()).getData();
record.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getAccCompName());
record.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
record.setInvoiceInfo(openTickRemarks);
}
}else if ("01".equals(solutionsDetailsVo.getTypeKey())){//非担保
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
record.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
record.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()).getData();
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
record.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
record.setInvoiceInfo(openTickRemarks);
}
}
}
@ -987,6 +1037,395 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return fileUrl;
}
public String getFileUrlNew(FinBillApplicationDto dto) {
String fileUrl = "";
String contractNo = dto.getContractNo();
List<File> filesList = new ArrayList<>();
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
//按开票名称sid分组
Map<String, List<FinBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
Map<String, Object> filemap = new HashMap<>();
Map<String, Object> checkMap = new HashMap<>();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid);
if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) {
FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<FinBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
FinBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid);
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//乙方
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//乙方证件号码
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
} else {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//乙方
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//乙方证件号码
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid", busSalesOrder.getSid());
ResultBean<Map<String, Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey());
}
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
}
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto v : finBillVehicles) {
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBorrowSid(dto.getContractNo(), v.getVehSid());
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {//登记在挂靠公司
v.setOpenTickSid(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompanySid());
v.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
v.setBillTypeKey(busSalesOrder.getBillingTypeKey());
v.setBillTypeValue(busSalesOrder.getBillingType());
}
}
//按开票名称sid分组
Map<String, List<FinBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<FinBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
FinBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid);
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != null) {//机动车
if (finCompanyInvoicing != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicing.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}
}
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
}
return fileUrl;
}
public String blackFile(Map<String, Object> map) {
String ftl = "";
String name = "";
@ -1238,6 +1677,35 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (data != null) {
vo.setShowValueCustomer(!data.getSingleFinalPrice().equals(entity.getOneBillMoney()));
}
//生成的合同下载地址
String allDownloadUrl = "";
if(StringUtils.isNotBlank(entity.getFileUrl())){
allDownloadUrl = docPdfComponent.getPrefixTemplateUrl()+entity.getFileUrl();
vo.setAllDownloadUrl(allDownloadUrl);
}
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
vo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
vo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(loanSolutions != null){
if(StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())){
vo.setOrderInvoicePrice(loanSolutions.getMainVehicleAmount());
}
}
return vo;
}
@ -5246,21 +5714,67 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())){//担保
String jfkcSid = loanHomevisitInvestigateFeign.selSaleOrderSidAndBorrSid(busSalesOrder.getSid(), busSalesOrderVehicle.getBorrowerSid()).getData();
LoanHomevisitInvestigateCustomerDetailsVo loanHomevisitInvestigateCustomerDetailsVo = loanHomevisitInvestigateCustomerFeign.selectByMainSid(jfkcSid).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
vinListVos1.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
vinListVos1.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
vinListVos1.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerName());
vinListVos1.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
vinListVos1.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByTaxpayerNo(loanHomevisitInvestigateCustomerDetailsVo.getAccCompRegistNum()).getData();
vinListVos1.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getAccCompName());
vinListVos1.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
vinListVos1.setInvoiceInfo(openTickRemarks);
}
}else if ("01".equals(solutionsDetailsVo.getTypeKey())){//非担保
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
vinListVos1.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
vinListVos1.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
vinListVos1.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
vinListVos1.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
vinListVos1.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()).getData();
vinListVos1.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
vinListVos1.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
vinListVos1.setInvoiceInfo(openTickRemarks);
}
}
}
@ -5277,8 +5791,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return rb.success().setData(finBillApplicationDetailsVo);
}
public void createContractNo(FinBillApplicationDto dto){
/*try {
public String createContractNo(FinBillApplicationDto dto){
/* try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
@ -5286,11 +5800,15 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
String fileUrl = getFileUrl(dto);
return fileUrl;
});
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}*/
// String fileUrl = getFileUrlNew(dto);
String fileUrl = "";
return fileUrl;
}
public List<String> castList(Object obj, Class<String> clazz){
@ -5303,4 +5821,13 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
return new ArrayList<>();
}
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
ResultBean<DownloanVoUrl> rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
return rb.success().setData(downloanVoUrl);
}
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingMapper.java

@ -87,4 +87,7 @@ public interface FinCompanyInvoicingMapper extends BaseMapper<FinCompanyInvoicin
List<FinCompanyInvoicingDetailsVo> selectInvoingByOrgPath(String userOrgSid);
FinCompanyInvoicingDetailsVo selByTaxpayerNoAndUseOrgSid(@Param("taxpayerNo") String taxpayerNo, @Param("useOrgSid") String useOrgSid);
@Select("select * from fin_company_invoicing where name = #{affiliatedCompany}")
FinCompanyInvoicingDetailsVo selectInvoingByName(String affiliatedCompany);
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java

@ -569,4 +569,10 @@ public class FinCompanyInvoicingService extends MybatisBaseService<FinCompanyInv
FinCompanyInvoicingDetailsVo vo = baseMapper.selByTaxpayerNoAndUseOrgSid(taxpayerNo,useOrgSid);
return rb.success().setData(vo);
}
public ResultBean<FinCompanyInvoicingDetailsVo> selectInvoingByName(String affiliatedCompany) {
ResultBean<FinCompanyInvoicingDetailsVo> rb = ResultBean.fireFail();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = baseMapper.selectInvoingByName(affiliatedCompany);
return rb.success().setData(finCompanyInvoicingDetailsVo);
}
}

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

@ -594,7 +594,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
map.put("idNo2", "");
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//分公司(甲方)
map.put("jf", finCompanyInvoicingDetailsVo.getName());
List<String> urls = new ArrayList<>();
@ -652,7 +652,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//分公司(甲方)
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//经办人
@ -771,7 +771,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//获取合同补充信息
HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust();
//分公司(甲方)
@ -862,7 +862,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//分公司(甲方)
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//获取合同补充信息
@ -998,7 +998,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//签署日期
map.put("qdDate", DateUtil.formatDate(new Date()));
//委托人
@ -1072,7 +1072,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//甲方
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//乙方
@ -1191,7 +1191,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//甲方
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//乙方
@ -1357,7 +1357,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//签订日期
map.put("date", DateUtil.formatDate(new Date()));
boolean q = finCompanyInvoicingDetailsVo.getAddress().contains("区");
@ -1542,7 +1542,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//甲方
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//乙方
@ -1653,7 +1653,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//获取销售订单信息
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData();
//获取采购系统、分公司对应的开票信息
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsBySystem(busSalesOrder.getPurchaseSystemSid()).getData();
//甲方
map.put("jf", finCompanyInvoicingDetailsVo.getName());
//乙方

9
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoVo.java

@ -97,4 +97,13 @@ public class BillApplicationIInfoVo implements Vo {
private Boolean showBtn;
@ApiModelProperty("是否显示信审终审")
private Boolean showXsState = false;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.invoiced;
import com.yxt.anrui.terminal.api.autoservice.arrearsTakeCar.AdvanceArrearsDto;
import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -98,4 +99,9 @@ public interface InvoicedFeign {
@GetMapping("/getFlowOperateTitleByKP")
@ResponseBody
ResultBean<KpsqFlowListVo> getFlowOperateTitleByKP(@SpringQueryMap InvoicedQuery query);
@ApiOperation("点击生成附件")
@PostMapping("/saveInvoicedApplyInfoPdf")
@ResponseBody
public ResultBean saveInvoicedApplyInfoPdf(@RequestBody BillApplicationIInfoDto dto);
}

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java

@ -89,4 +89,9 @@ public class InvoicedFeignFallback implements InvoicedFeign {
public ResultBean<KpsqFlowListVo> getFlowOperateTitleByKP(InvoicedQuery query) {
return null;
}
@Override
public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) {
return null;
}
}

5
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java

@ -97,4 +97,9 @@ public class InvoicedRest implements InvoicedFeign {
public ResultBean<KpsqFlowListVo> getFlowOperateTitleByKP(InvoicedQuery query) {
return invoicedService.getFlowOperateTitleByKP(query);
}
@Override
public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) {
return invoicedService.saveInvoicedApplyInfoPdf(dto);
}
}

127
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java

@ -373,6 +373,10 @@ public class InvoicedService {
billApplicationIInfoVo.setDate(data.getApplyDate());
billApplicationIInfoVo.setUserSid(data.getCreateBySid());
billApplicationIInfoVo.setPublishInfo(data.getDeptName() + "-" + data.getCreateByName());
billApplicationIInfoVo.setAllDownloadUrl(data.getAllDownloadUrl());
billApplicationIInfoVo.setContractBtns(data.getContractBtns());
billApplicationIInfoVo.setOrderInvoiceSid(data.getOrderInvoiceSid());
billApplicationIInfoVo.setOrderInvoicePrice(data.getOrderInvoicePrice());
//根据合同查询销售订单
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(data.getContractNo()).getData();
billApplicationIInfoVo.setBusSalesOrderSid(busSalesOrder.getSid());
@ -1116,4 +1120,127 @@ public class InvoicedService {
}
return rb.success();
}
public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) {
FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto();
BeanUtil.copyProperties(dto, finBillApplicationDto, "carBuyContractImages");
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
if (dto.getShowBtn()) {
finBillApplicationDto.setShowBtnStr("1");
} else {
finBillApplicationDto.setShowBtnStr("0");
}
finBillApplicationDto.setUseOrgSid(useOrgSid);
finBillApplicationDto.setCreateBySid(dto.getUserSid());
finBillApplicationDto.setTotalBillMoney(dto.getInvoiceTotal());
finBillApplicationDto.setOrgSidPath(dto.getOrgPath());
finBillApplicationDto.setSaleTypeValue(dto.getSaleType());
finBillApplicationDto.setSaleDeptName(dto.getSellerDept());
finBillApplicationDto.setStaffName(dto.getSellerName());
finBillApplicationDto.setOpenTickUnitName(dto.getInvoicingUnit());
finBillApplicationDto.setCustomerName(dto.getName());
finBillApplicationDto.setOneBillMoney(dto.getInvoiceMoney());
finBillApplicationDto.setOpenTickTypeKey(dto.getOpenTickTypeKey());
finBillApplicationDto.setOpenTickTypeValue(dto.getOpenTickTypeValue());
finBillApplicationDto.setOpenTickSid(dto.getOpenTickSid());
finBillApplicationDto.setOpenTickName(dto.getOpenTickName());
finBillApplicationDto.setBillStateKey(dto.getInvoiceStateKey());
finBillApplicationDto.setBillStateValue(dto.getInvoiceState());
finBillApplicationDto.setContractNo(dto.getContractId());
finBillApplicationDto.setApplyDate(dto.getDate());
finBillApplicationDto.setCreateBySid(dto.getUserSid());
finBillApplicationDto.setNodeState(dto.getNodeState());
finBillApplicationDto.setBillNo(dto.getBillNo());
String publishInfo = dto.getPublishInfo();
String[] split = publishInfo.split("-");
finBillApplicationDto.setDeptName(split[0]);
finBillApplicationDto.setCreateByName(split[1]);
//开票车辆信息
List<VinListDto> vinList = dto.getVinList();
List<FinBillVehicleDto> finBillVehicleDtos = new ArrayList<>();
for (VinListDto vinListDto : vinList) {
if (StringUtils.isBlank(vinListDto.getInvoiceInfo())) {
return new ResultBean().fail().setMsg("开票信息不能为空");
}
FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto();
finBillVehicleDto.setVinNo(vinListDto.getVin());
finBillVehicleDto.setVehSid(vinListDto.getVinSid());
finBillVehicleDto.setCertificateStateKey(vinListDto.getCertificateStateKey());
finBillVehicleDto.setCertificateStateValue(vinListDto.getCertificateState());
finBillVehicleDto.setBillTypeKey(vinListDto.getInvoiceTypeKey());
finBillVehicleDto.setBillTypeValue(vinListDto.getInvoiceType());
finBillVehicleDto.setOpenTickSid(vinListDto.getOpenTickSid());
finBillVehicleDto.setOpenTickName(vinListDto.getInvoiceName());
finBillVehicleDto.setOpenTickRemarks(vinListDto.getInvoiceInfo());
finBillVehicleDto.setXSState(vinListDto.getXSState());
finBillVehicleDtos.add(finBillVehicleDto);
}
finBillApplicationDto.setFinBillVehicles(finBillVehicleDtos);
//开票挂车信息
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto> finBillTrailerDtos = new ArrayList<>();
if (finBillTrailers != null && finBillTrailers.size() > 0) {
for (FinBillTrailerDto finBillTrailer : finBillTrailers) {
com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto finBillTrailerDto = new com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto();
BeanUtil.copyProperties(finBillTrailer, finBillTrailerDto);
finBillTrailerDtos.add(finBillTrailerDto);
}
}
finBillApplicationDto.setFinBillTrailers(finBillTrailerDtos);
//附件信息
List<String> appCarBuyContractImages = dto.getCarBuyContractImages();//车辆买卖合同
List<String> customerInvoiceApplyImages = dto.getCustomerInvoiceApplyImages();//客户开票申请书
List<String> invoiceApplyConfirmImages = dto.getInvoiceApplyConfirmImages();//开票信息确认书
List<String> registerContractImages = dto.getRegisterContractImages();//车辆登记合同
List<String> idCardImages = dto.getIdCardImages();//证件
List<FinBillFileDto> carBuyContractImages = new ArrayList<>(); // 车辆买卖合同
List<FinBillFileDto> khkpsqsApplicationAppendxs = new ArrayList<>(); // 客户开票申请书附件信息
List<FinBillFileDto> kpxxqrsApplicationAppendxs = new ArrayList<>(); // 开票信息确认书附件信息
List<FinBillFileDto> cldjhtApplicationAppendxs = new ArrayList<>(); // 车辆登记合同附件信息
List<FinBillFileDto> idCardImagesPC = new ArrayList<>();//证件
if (appCarBuyContractImages != null) {
for (String appCarBuyContractImage : appCarBuyContractImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(appCarBuyContractImage);
carBuyContractImages.add(finBillFileDto);
}
}
if (customerInvoiceApplyImages != null) {
for (String customerInvoiceApplyImage : customerInvoiceApplyImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(customerInvoiceApplyImage);
khkpsqsApplicationAppendxs.add(finBillFileDto);
}
}
if (invoiceApplyConfirmImages != null) {
for (String invoiceApplyConfirmImage : invoiceApplyConfirmImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(invoiceApplyConfirmImage);
kpxxqrsApplicationAppendxs.add(finBillFileDto);
}
}
if (registerContractImages != null) {
for (String registerContractImage : registerContractImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(registerContractImage);
cldjhtApplicationAppendxs.add(finBillFileDto);
}
}
if (idCardImages != null) {
for (String idCardImage : idCardImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(idCardImage);
idCardImagesPC.add(finBillFileDto);
}
}
finBillApplicationDto.setCarBuyContractImages(carBuyContractImages);
finBillApplicationDto.setKhkpsqsApplicationAppendxs(khkpsqsApplicationAppendxs);
finBillApplicationDto.setKpxxqrsApplicationAppendxs(kpxxqrsApplicationAppendxs);
finBillApplicationDto.setCldjhtApplicationAppendxs(cldjhtApplicationAppendxs);
finBillApplicationDto.setZjApplicationAppendxs(idCardImagesPC);
finBillApplicationDto.setArrearsMoney("0");
ResultBean resultBean = finBillApplicationFeign.saveInvoicedApplyInfoPdf(finBillApplicationDto);
return resultBean;
}
}

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java

@ -32,10 +32,8 @@ public class AsBusrepairInventorybillDto {
private String warehouseManagerSid;
@ApiModelProperty("库管操作人")
private String warehouseManager;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
private List<AsBusrepairInventorybillDetailDto> detailList = new ArrayList<>();
private String orgPath;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItem.java

@ -25,6 +25,8 @@ public class AsServiceAttachItem extends BaseEntity {
private String aitemCode;
@ApiModelProperty("销售价(工时费)=工时单价*工时数")
private BigDecimal price;
@ApiModelProperty("成本")
private BigDecimal cost;
@ApiModelProperty("排序号")
private Integer sortNo;
@ApiModelProperty("使用组织sid")

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemDetailsVo.java

@ -62,6 +62,8 @@ public class AsServiceAttachItemDetailsVo implements Vo {
private String price;
@ApiModelProperty("排序号")
private String sortNo;
@ApiModelProperty("成本")
private String cost;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemDto.java

@ -63,6 +63,8 @@ public class AsServiceAttachItemDto implements Dto {
private String price;
@ApiModelProperty("排序号")
private String sortNo;
@ApiModelProperty("成本")
private String cost;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceattachitem/AsServiceAttachItemVo.java

@ -50,12 +50,15 @@ import java.math.BigDecimal;
@ApiModel(value = "附加项目 视图数据对象", description = "附加项目 视图数据对象")
public class AsServiceAttachItemVo implements Vo {
private String sid;
@ApiModelProperty("项目名称")
private String aitemName;
@ApiModelProperty("项目名称")
private String aitemCode;
@ApiModelProperty("销售价(工时费)=工时单价*工时数")
private String price;
@ApiModelProperty("成本")
private String cost;
@ApiModelProperty("排序号")
private String sortNo;
@ApiModelProperty("备注")

19
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageDetailsVo.java

@ -32,6 +32,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* Project: yxt-as(售后服务) <br/>
* File: AsServicePackageVo.java <br/>
@ -51,15 +54,17 @@ public class AsServicePackageDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("套餐名称")
@ApiModelProperty("套餐名称")
private String packageName; // 套餐名称
@ApiModelProperty("套餐编码")
private String packageCode; // 套餐编码
@ApiModelProperty("排序号")
private Integer sortNo; // 排序号
@ApiModelProperty("使用组织sid")
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("创建组织sid")
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
private String orgPath;
private List<PackageItemVo> itemVos = new ArrayList<>();
private List<PackageGoodsVo> goodsVos = new ArrayList<>();
private List<PackageAttachItemVo> attachItemVos = new ArrayList<>();
}

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageQuery.java

@ -51,13 +51,6 @@ public class AsServicePackageQuery implements Query {
@ApiModelProperty("套餐名称")
private String packageName; // 套餐名称
@ApiModelProperty("套餐编码")
private String packageCode; // 套餐编码
@ApiModelProperty("排序号")
private Integer sortNo; // 排序号
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
private String orgPath;
}

11
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/AsServicePackageVo.java

@ -53,13 +53,8 @@ public class AsServicePackageVo implements Vo {
@ApiModelProperty("套餐名称")
private String packageName; // 套餐名称
@ApiModelProperty("套餐编码")
private String packageCode; // 套餐编码
@ApiModelProperty("排序号")
private Integer sortNo; // 排序号
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("备注")
private String remarks; // 备注
}

15
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageAttachItemVo.java

@ -0,0 +1,15 @@
package com.yxt.anrui.as.api.asservicepackage;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/3/11 8:54
*/
@Data
public class PackageAttachItemVo {
}

15
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageGoodsVo.java

@ -0,0 +1,15 @@
package com.yxt.anrui.as.api.asservicepackage;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/3/11 8:54
*/
@Data
public class PackageGoodsVo {
}

36
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageItemVo.java

@ -0,0 +1,36 @@
package com.yxt.anrui.as.api.asservicepackage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/3/11 8:54
*/
@Data
public class PackageItemVo {
private String sitemSid;
@ApiModelProperty("项目名称")
private String sitemName;
@ApiModelProperty("项目名称")
private String sitemCode;
@ApiModelProperty("工种sid(分类)")
private String serviceTypeSid;
@ApiModelProperty("工种(分类)")
private String serviceType;
@ApiModelProperty("工时单价")
private String hourPrice;
@ApiModelProperty("工时数")
private String hours;
@ApiModelProperty("销售价(工时费)=工时单价*工时数")
private String price;
@ApiModelProperty("科目sid")
private String subjectSid;
@ApiModelProperty("科目名称")
private String subjectName;
}

12
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -11,6 +11,7 @@ import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillFeign;
@ -23,6 +24,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -39,8 +41,10 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
@Autowired
private AsBusrepairInventorybillDetailService asBusrepairInventorybillDetailService;
@Autowired
@Resource
private WmsInventoryBillFeign wmsInventoryBillFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 维修出/退库分页列表
@ -75,6 +79,12 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (!detailList.isEmpty()) {
asBusrepairInventorybillDetailService.saveOrUpdateDetail(detailList, sid);
}
String orgPath = dto.getOrgPath();
if(StringUtils.isNotBlank(orgPath)){
String useOrgSid =sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
asBusrepairInventorybill.setCreateOrgSid(useOrgSid);
asBusrepairInventorybill.setUseOrgSid(useOrgSid);
}
baseMapper.insert(asBusrepairInventorybill);
} else {
AsBusrepairInventorybill asBusrepairInventorybill = fetchBySid(sid);

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asserviceitem/AsServiceItemService.java

@ -44,10 +44,10 @@ public class AsServiceItemService extends MybatisBaseService<AsServiceItemMapper
qw.and(wrapper -> wrapper.like("sitemName", query.getSitemName()).or().like("sitemCode", query.getSitemName()));
}
if (StringUtils.isNotBlank(query.getServiceType())) {
qw.eq("serviceType", query.getServiceType());
qw.like("serviceType", query.getServiceType());
}
if (StringUtils.isNotBlank(query.getManufacturer())) {
qw.eq("manufacturer", query.getManufacturer());
qw.like("manufacturer", query.getManufacturer());
}
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath());
if (orgSidByPath.getSuccess()) {

98
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageService.java

@ -28,6 +28,8 @@ package com.yxt.anrui.as.biz.asservicepackage;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -39,6 +41,7 @@ import com.yxt.anrui.as.api.asservicepackage.AsServicePackageVo;
import com.yxt.anrui.as.api.asservicepackage.AsServicePackageDetailsVo;
import com.yxt.anrui.as.api.asservicepackage.AsServicePackageDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -56,51 +59,62 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AsServicePackageService extends MybatisBaseService<AsServicePackageMapper, AsServicePackage> {
private QueryWrapper<AsServicePackage> createQueryWrapper(AsServicePackageQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsServicePackage> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<AsServicePackageVo> listPageVo(PagerQuery<AsServicePackageQuery> pq) {
AsServicePackageQuery query = pq.getParams();
QueryWrapper<AsServicePackage> qw = createQueryWrapper(query);
IPage<AsServicePackage> page = PagerUtil.queryToPage(pq);
IPage<AsServicePackageVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServicePackageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(AsServicePackageDto dto){
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
private QueryWrapper<AsServicePackage> createQueryWrapper(AsServicePackageQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsServicePackage> qw = new QueryWrapper<>();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath());
if (orgSidByPath.getSuccess()) {
qw.eq("useOrgSid", orgSidByPath.getData());
}
if (StringUtils.isNotBlank(query.getPackageName())) {
qw.like("packageName", query.getPackageName());
}
qw.orderByDesc("createTime");
return qw;
}
public PagerVo<AsServicePackageVo> listPageVo(PagerQuery<AsServicePackageQuery> pq) {
AsServicePackageQuery query = pq.getParams();
QueryWrapper<AsServicePackage> qw = createQueryWrapper(query);
IPage<AsServicePackage> page = PagerUtil.queryToPage(pq);
IPage<AsServicePackageVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServicePackageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(AsServicePackageDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(AsServicePackageDto dto){
AsServicePackage entity = new AsServicePackage();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(AsServicePackageDto dto){
String dtoSid = dto.getSid();
return;
}
this.updateByDto(dto);
}
public void insertByDto(AsServicePackageDto dto) {
AsServicePackage entity = new AsServicePackage();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(AsServicePackageDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
AsServicePackage entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public AsServicePackageDetailsVo fetchDetailsVoBySid(String sid){
AsServicePackage entity = fetchBySid(sid);
AsServicePackageDetailsVo vo = new AsServicePackageDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}
AsServicePackage entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public AsServicePackageDetailsVo fetchDetailsVoBySid(String sid) {
AsServicePackage entity = fetchBySid(sid);
AsServicePackageDetailsVo vo = new AsServicePackageDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

2
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsmanufacturer/WmsManufacturerFeign.java

@ -17,7 +17,7 @@ import java.util.List;
@FeignClient(
contextId = "yxt-wms-WmsManufacturer",
name = "yxt-wms",
path = "apiadmin/base/wmsmanufacturer",
path = "apiadmin/base/basemanufacturer",
fallback = WmsManufacturerFeignFallback.class
)
public interface WmsManufacturerFeign {

Loading…
Cancel
Save