Browse Source

注释开票生成合同

master
dimengzhe 1 year ago
parent
commit
90bac4f473
  1. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java
  2. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java
  3. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml
  4. 146
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  5. 4
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl

1
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java

@ -20,4 +20,5 @@ public class BillFileVo {
private String openPrice;
@ApiModelProperty("发票类型")
private String type;
private String vinNo;
}

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

@ -118,4 +118,6 @@ public interface FinBillApplicationMapper extends BaseMapper<FinBillApplication>
BaseVehicle selectByVinSid(String vehSid);
CrmCustomerTemp selectByCustomerSid(String openTickSid);
BaseVehicle selectVinNoByVinSid(String vehSid);
}

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

@ -219,4 +219,8 @@
<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>
</mapper>

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

@ -84,6 +84,7 @@ import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerVo;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicle;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicing;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo;
import com.yxt.anrui.fin.api.finfundscarriedforwardapply.FinFundsCarriedForwardApply;
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceDto;
@ -131,6 +132,7 @@ import com.yxt.messagecenter.api.message.*;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -145,6 +147,7 @@ import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static java.util.Collections.singletonList;
import static java.util.Comparator.comparing;
/**
@ -731,31 +734,43 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
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());
}
if (loanSolutions != null) {
/* if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}
}*/
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
list.add(billFileVo);
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){
vinNoString.add(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);
/* String vinNo = String.join(",",vinNoString);
billFileVo.setVinNo(vinNo);*/
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());
@ -763,36 +778,42 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
if (carNameMap.containsKey(carName)) {
carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1);
/* if (carNameMap.containsKey(carName)) {
carNameMap.put(carName, Arrays.asList(carNameMap.get(carName).toString()).add(baseTrailer.getVinNo()));
continue;
} else {
billFileVo.setType(busSalesOrder.getBillingType());
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
carNameMap.put(carName, 1);
trailerVinString.add(baseTrailer.getVinNo());
carNameMap.put(carName,trailerVinString);
list.add(billFileVo);
}
}*/
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
if (!list.isEmpty()) {
/*if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
BillFileVo billFileVo1 = list.get(i);
String carName = billFileVo1.getCarName();
if (carNameMap.containsKey(carName)) {
billFileVo1.setNum(carNameMap.get(carName).toString());
List<String> ssList = castList(carNameMap.get(carName),String.class);
String trailerVinNo = String.join(",",ssList);
billFileVo1.setOpenPrice(Arrays.asList(carName.split("#")).get(1));
billFileVo1.setCarName(Arrays.asList(carName.split("#")).get(0));
billFileVo1.setVinNo(trailerVinNo);
}
}
}
}*/
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
@ -803,7 +824,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
map.put("year", year);
map.put("month", month);
map.put("day", day);
if (!"02".equals(finBillVehicleDto.getBillTypeKey())) {
FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid);
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
@ -831,45 +853,48 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
}
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());//户籍地址
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());
}
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 {
@ -5243,4 +5268,15 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
log.error("生成文件失败:==========================" + e.getMessage());
}*/
}
public List<String> castList(Object obj, Class<String> clazz){
List<String> result = new ArrayList<>();
if(obj instanceof List<?>){
for (Object o : (List<?>) obj){
result.add(clazz.cast(o));
}
return result;
}
return new ArrayList<>();
}
}

4
anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl

@ -998,7 +998,7 @@
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>数量</w:t>
<w:t>车架号</w:t>
</w:r>
</w:p>
</w:tc>
@ -1194,7 +1194,7 @@
<w:kern w:val="0"/>
<w:sz-cs w:val="21"/>
</w:rPr>
<w:t>${car.num!}</w:t>
<w:t>${car.vinNo!}</w:t>
</w:r>
</w:p>
</w:tc>

Loading…
Cancel
Save