Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
fanzongzhe 1 year ago
parent
commit
d32017258c
  1. 20
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue
  2. 20
      anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue
  3. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java
  4. 16
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java
  5. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  6. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  7. 11
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java
  8. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java
  9. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml
  10. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  11. 561
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  12. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingMapper.java
  13. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java
  14. 4
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl
  15. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java
  16. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java
  17. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java
  18. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/SelBillZcVo.java
  19. 5
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java
  20. 123
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java
  21. 35
      yxt-as-ui/src/api/additionitem/additionitem.js
  22. 57
      yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js
  23. 35
      yxt-as-ui/src/api/profession/profession.js
  24. 64
      yxt-as-ui/src/router/index.js
  25. 326
      yxt-as-ui/src/views/additionitem/additionitem.vue
  26. 282
      yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue
  27. 278
      yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue
  28. 183
      yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue
  29. 326
      yxt-as-ui/src/views/profession/profession.vue

20
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue

@ -71,7 +71,7 @@
<el-col :span="6">
<div class="span-sty">开票类型默认</div>
<el-form-item>
<el-select v-model="formobj.openTickTypeValue" placeholder="请选择" @change="changeOpenTickType" class="addinputInfo">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="formobj.openTickTypeValue" placeholder="请选择" @change="changeOpenTickType" class="addinputInfo">
<el-option v-for="item in openTickType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
@ -79,14 +79,14 @@
<el-col :span="8">
<div class="span-sty">开票名称默认</div>
<el-form-item>
<el-select v-model="formobj.openTickName" placeholder="请选择" @change="changeOpenTick" filterable class="addinputInfo" style="width: 60%">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="formobj.openTickName" placeholder="请选择" @change="changeOpenTick" filterable class="addinputInfo" style="width: 60%">
<el-option v-for="item in openTick_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item style="text-align: right">
<el-button type="primary" size="small" @click="handlePreserve">维护开票信息</el-button>
<el-button :disabled="formobj.saleTypeKey == '2'" type="primary" size="small" @click="handlePreserve">维护开票信息</el-button>
</el-form-item>
</el-col>
</el-row>
@ -109,14 +109,14 @@
</el-table-column>
<el-table-column label="开票类型" align="center" width="250">
<template slot-scope="scope">
<el-select v-model="scope.row.billTypeValue" placeholder="请选择" @change="changeBillType($event, scope.row)">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="scope.row.billTypeValue" placeholder="请选择" @change="changeBillType($event, scope.row)">
<el-option v-for="item in openTickType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" width="250">
<template slot-scope="scope">
<el-select v-model="scope.row.openTickName" placeholder="请选择" @change="changeOpenTickName($event, scope.row)" filterable>
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="scope.row.openTickName" placeholder="请选择" @change="changeOpenTickName($event, scope.row)" filterable>
<el-option v-for="item in openTick_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</template>
@ -427,11 +427,11 @@ export default {
vehSid: e.vinSid,
certificateStateValue: e.certificateState,
certificateStateKey: e.certificateStateKey,
billTypeValue: '',
billTypeKey: '',
openTickName: '',
openTickSid: '',
openTickRemarks: '',
billTypeValue: e.invoiceType,
billTypeKey: e.invoiceTypeKey,
openTickName: e.invoiceName,
openTickSid: e.openTickSid,
openTickRemarks: e.invoiceInfo,
xSState: e.xSState
})
//

20
anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue

@ -70,7 +70,7 @@
<el-col :span="6">
<div class="span-sty">开票类型默认</div>
<el-form-item>
<el-select v-model="formobj.openTickTypeValue" placeholder="请选择" @change="changeOpenTickType" class="addinputInfo">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="formobj.openTickTypeValue" placeholder="请选择" @change="changeOpenTickType" class="addinputInfo">
<el-option v-for="item in openTickType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
@ -78,14 +78,14 @@
<el-col :span="8">
<div class="span-sty">开票名称默认</div>
<el-form-item>
<el-select v-model="formobj.openTickName" placeholder="请选择" @change="changeOpenTick" filterable class="addinputInfo">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="formobj.openTickName" placeholder="请选择" @change="changeOpenTick" filterable class="addinputInfo">
<el-option v-for="item in openTick_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button type="primary" size="small" @click="handlePreserve">维护开票信息</el-button>
<el-button :disabled="formobj.saleTypeKey == '2'" type="primary" size="small" @click="handlePreserve">维护开票信息</el-button>
</el-form-item>
</el-col>
</el-row>
@ -108,14 +108,14 @@
</el-table-column>
<el-table-column label="开票类型" align="center" width="250">
<template slot-scope="scope">
<el-select v-model="scope.row.billTypeValue" placeholder="请选择" @change="changeBillType($event, scope.row)">
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="scope.row.billTypeValue" placeholder="请选择" @change="changeBillType($event, scope.row)">
<el-option v-for="item in openTickType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" width="250">
<template slot-scope="scope">
<el-select v-model="scope.row.openTickName" placeholder="请选择" @change="changeOpenTickName($event, scope.row)" filterable>
<el-select :disabled="formobj.saleTypeKey == '2'" v-model="scope.row.openTickName" placeholder="请选择" @change="changeOpenTickName($event, scope.row)" filterable>
<el-option v-for="item in openTick_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</template>
@ -448,11 +448,11 @@ export default {
vehSid: e.vinSid,
certificateStateValue: e.certificateState,
certificateStateKey: e.certificateStateKey,
billTypeValue: '',
billTypeKey: '',
openTickName: '',
openTickSid: '',
openTickRemarks: '',
billTypeValue: e.invoiceType,
billTypeKey: e.invoiceTypeKey,
openTickName: e.invoiceName,
openTickSid: e.openTickSid,
openTickRemarks: e.invoiceInfo,
xSState: e.xSState
})
//

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;
}

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;
}

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;
}
}

11
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java

@ -69,4 +69,15 @@ public class PcSelBillVinNoPageVo implements Vo {
@ApiModelProperty("信审终审状态")
@JsonProperty("xSState")
private String xSState;
@ApiModelProperty("开票类型value")
private String invoiceType;
@ApiModelProperty("开票类型key")
private String invoiceTypeKey;
@ApiModelProperty("开票名称sid")
private String openTickSid;
@ApiModelProperty("开票名称")
private String invoiceName;
@ApiModelProperty("开票信息")
private String invoiceInfo;
}

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>

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);
}
}

561
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;
@ -84,6 +86,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 +134,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 +149,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;
/**
@ -224,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;
@ -455,6 +462,78 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
record.setInvoicingUnit(invoicingDetailsVoResultBean.getData().getName());
}
}
//贷款查询开票名称、开票类型
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(record.getBusSalesOrderSid()).getData();
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetails(record.getBusSalesOrderSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(record.getContractId(), record.getVinSid()).getData();
if ("2".equals(record.getSaleTypeKey())){
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);
}
}
}
//主车合格证照片
BaseVehicleCertificateVo baseVehicleCertificateVo = baseVehicleCertificateFeign.selStateByVehicleSid(record.getVinSid()).getData();
if (baseVehicleCertificateVo != null) {
@ -731,31 +810,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 +854,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 +900,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 +929,307 @@ 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("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;
}
}
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
}
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();
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
//按开票名称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());
}
/* if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}*/
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){
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());
if (baseTrailer != null) {
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, Arrays.asList(carNameMap.get(carName).toString()).add(baseTrailer.getVinNo()));
continue;
} else {
billFileVo.setType(busSalesOrder.getBillingType());
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
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()) {
for (int i = 0; i < list.size(); i++) {
BillFileVo billFileVo1 = list.get(i);
String carName = billFileVo1.getCarName();
if (carNameMap.containsKey(carName)) {
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();
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) {
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 (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());
}
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 {
@ -927,6 +1287,19 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同
/*LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
}*/
}
}
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
@ -5141,8 +5514,6 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
oneBillMoney = new BigDecimal(solutionsDetailsVo.getMainVehicleAmount());
billApplicationIInfoVoss.setInvoiceMoney(oneBillMoney.toString());
billApplicationIInfoVoss.setInvoiceTotal(oneBillMoney.multiply(new BigDecimal(vins.size())).toString());
billApplicationIInfoVoss.setOpenTickTypeKey(busSalesOrder.getBillingTypeKey());
billApplicationIInfoVoss.setOpenTickTypeValue(busSalesOrder.getBillingType());
billApplicationIInfoVoss.setNoEditInvoiceTypeAndName(true);
billApplicationIInfoVoss.setNoEditInvoiceMoney(true);
}else {
@ -5194,24 +5565,70 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//贷款主车初始化开票名称、开票类型
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(contractId, vins.get(i)).getData();
if ("2".equals(busSalesOrder.getPayTypeKey())){
if ("01".equals(busSalesOrder.getFinancePlan())){//担保
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 ("02".equals(busSalesOrder.getFinancePlan())){//非担保
}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);
}
}
}
@ -5228,8 +5645,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,
@ -5237,10 +5654,34 @@ 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){
List<String> result = new ArrayList<>();
if(obj instanceof List<?>){
for (Object o : (List<?>) obj){
result.add(clazz.cast(o));
}
return result;
}
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);
}
}

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>

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());
//乙方

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;
}
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/SelBillZcVo.java

@ -18,6 +18,18 @@ public class SelBillZcVo implements Vo {
private String certificateStateKey;
@ApiModelProperty("合格证状态value")
private String certificateState;
@ApiModelProperty("开票类型value")
private String invoiceType;
@ApiModelProperty("开票类型key")
private String invoiceTypeKey;
@ApiModelProperty("开票名称sid")
private String openTickSid;
@ApiModelProperty("开票名称")
private String invoiceName;
@ApiModelProperty("开票信息")
private String invoiceInfo;
@ApiModelProperty("主车合格证图片")
private List<String> zcHgzImages;

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);
}
}

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

@ -1116,4 +1116,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;
}
}

35
yxt-as-ui/src/api/additionitem/additionitem.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/AsServiceAttachItem/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
saveOrUpdate: function(data) {
return request({
url: '/as/v1/AsServiceAttachItem/saveAttachItem',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/AsServiceAttachItem/fetchDetails/' + data,
method: 'get'
})
},
deleteBySids: function(data) {
return request({
url: '/as/v1/AsServiceAttachItem/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

57
yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js

@ -0,0 +1,57 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/AsServiceItem/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
saveOrUpdate: function(data) {
return request({
url: '/as/v1/AsServiceItem/saveServiceItem',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/AsServiceItem/fetchDetails/' + data,
method: 'get'
})
},
deleteBySids: function(data) {
return request({
url: '/as/v1/AsServiceItem/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 根据分公司全路径sid查询本分公司下的品牌,再根据品牌查询相应的关联车型信息
getVehModel: function(data) {
return request({
url: '/as/v1/AsServiceItem/getVehModel',
method: 'get',
params: data
})
},
getManufacturers: function(data) {
return request({
url: '/as/v1/AsServiceItem/getManufacturers',
method: 'get',
params: data
})
},
getServiceType: function(data) {
return request({
url: '/as/v1/AsServiceItem/getServiceType',
method: 'get',
params: data
})
}
}

35
yxt-as-ui/src/api/profession/profession.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/asservicetype/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/asservicetype/fetchDetailsBySid/' + data,
method: 'get'
})
},
saveOrUpdate: function(data) {
return request({
url: '/as/v1/asservicetype/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
deleteBySids: function(data) {
return request({
url: '/as/v1/asservicetype/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

64
yxt-as-ui/src/router/index.js

@ -42,6 +42,70 @@ export const constantRoutes = [
component: () =>
import('@/views/404'),
hidden: true
},
{
path: '/profession',
component: Layout,
redirect: '/profession',
meta: {
title: '工种管理'
},
children: [
{
path: '/profession/profession',
component: () => import('@/views/profession/profession.vue'),
name: 'Profession',
meta: { title: '工种管理', noCache: true }
}
]
},
{
path: '/subjects',
component: Layout,
redirect: '/subjects',
meta: {
title: '科目管理'
},
children: [
{
path: '/subjects/subjects',
component: () => import('@/views/subjects/subjects.vue'),
name: 'Subjects',
meta: { title: '科目管理', noCache: true }
}
]
},
{
path: '/maintenanceitem',
component: Layout,
redirect: '/maintenanceitem',
meta: {
title: '维修项目管理'
},
children: [
{
path: '/maintenanceitem/maintenanceitem',
component: () => import('@/views/maintenanceitem/maintenanceitem.vue'),
name: 'MaintenanceItem',
meta: { title: '维修项目管理', noCache: true }
}
]
},
{
path: '/additionitem',
component: Layout,
redirect: '/additionitem',
meta: {
title: '附加项目管理'
},
children: [
{
path: '/additionitem/additionitem',
component: () => import('@/views/additionitem/additionitem.vue'),
name: 'AdditionItem',
meta: { title: '附加项目管理', noCache: true }
}
]
},
// 404 page must be placed at the end !!!
// { path: '*', redirect: '/404', hidden: true }

326
yxt-as-ui/src/views/additionitem/additionitem.vue

@ -0,0 +1,326 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="附加项目管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="项目名称">
<el-input v-model="listQuery.params.aitemName" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">附加项目列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column prop="aitemName" label="项目名称" align="center" />
<el-table-column prop="aitemCode" label="拼音缩写" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
<el-table-column prop="price" label="销售金额" align="center" />
<el-table-column prop="cost" label="成本" align="center" />
<el-table-column prop="sortNo" label="排序" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<el-dialog center :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">项目名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.aitemName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">拼音缩写</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.aitemCode" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">排序</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sortNo" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">销售价</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.price" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">成本</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.cost" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="handleClose">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/additionitem/additionitem'
export default {
name: 'AdditionItem',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
dialogVisible: false,
formobj: {
orgPath: '',
sid: '',
sortNo: '',
aitemCode: '',
aitemName: '',
remarks: '',
price: '',
cost: ''
},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
aitemName: '',
orgPath: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
aitemName: '',
orgPath: ''
}
}
this.getList()
},
toAdd() {
this.dialogVisible = true
},
toEdit(row) {
this.dialogVisible = true
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
handleConfirm() {
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.formobj = {
orgPath: '',
sid: '',
sortNo: '',
aitemCode: '',
aitemName: '',
remarks: '',
price: '',
cost: ''
}
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.span-sty {
width: 80px !important;
}
.addinputInfo {
margin-left: 75px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 75px !important;
width: calc(100% - 70px);
}
</style>

282
yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue

@ -0,0 +1,282 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="维修项目管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="类别">
<el-input v-model="listQuery.params.serviceType" placeholder="" clearable/>
</el-form-item>
<el-form-item label="厂家">
<el-input v-model="listQuery.params.manufacturer" placeholder="" clearable/>
</el-form-item>
<el-form-item label="项目名称">
<el-input v-model="listQuery.params.sitemName" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">维修项目列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="sitemName" label="项目名称" align="center" width="130" />
<el-table-column prop="sitemCode" label="拼音缩写" align="center" width="100" />
<el-table-column prop="serviceType" label="分类" align="center" width="100" />
<el-table-column prop="manufacturer" label="厂家" align="center" width="100" />
<el-table-column prop="goodsModel" label="车型" align="center" min-width="300" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
<el-table-column prop="hourPrice" label="销售单价" align="center" width="100" />
<el-table-column prop="hours" label="工时数" align="center" width="100" />
<el-table-column prop="price" label="销售金额" align="center" width="100" />
<el-table-column prop="examineHourPrice" label="考核价" align="center" width="100" />
<el-table-column prop="cost" label="成本" align="center" width="100" />
<el-table-column label="预约项目" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.isReserve == '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column prop="sortNo" label="排序" align="center" width="80" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<!--新增及修改 -->
<maintenanceitemAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!--详情-->
<maintenanceitemInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/maintenanceitem/maintenanceitem'
import maintenanceitemAdd from './maintenanceitemAdd'
import maintenanceitemInfo from './maintenanceitemInfo'
import Team from "@/views/team/team";
export default {
name: 'MaintenanceItem',
components: {
Team,
Pagination,
pageye,
ButtonBar,
maintenanceitemAdd,
maintenanceitemInfo
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
serviceType: '',
sitemName: '',
manufacturer: '',
orgPath: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
serviceType: '',
sitemName: '',
manufacturer: '',
orgPath: ''
}
}
this.getList()
},
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd()
},
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
toInfo(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

278
yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue

@ -0,0 +1,278 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>项目名称</div>
<el-form-item prop="sitemName"><el-input class="addinputInfo addinputw" v-model="formobj.sitemName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">拼音缩写</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sitemCode" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>工种</div>
<el-form-item prop="serviceType">
<el-select class="addinputInfo" v-model="formobj.serviceType" placeholder="请选择" @change="serviceTypeChange" clearable filterable>
<el-option v-for="item in serviceType_list" :key="item.serviceTypeSid" :label="item.serviceType" :value="item.serviceType"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">车型</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.goodsModel" placeholder="请选择" @change="goodsModelChange" clearable filterable>
<el-option v-for="item in goodsModel_list" :key="item.goodsModelSid" :label="item.goodsModel" :value="item.goodsModel"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">厂家</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.manufacturer" placeholder="请选择" @change="manufacturerChange" clearable filterable>
<el-option v-for="item in manufacturer_list" :key="item.manufacturerSid" :label="item.manufacturer" :value="item.manufacturer"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">排序</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sortNo" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">工时单价</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.hourPrice" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">工时数</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.hours" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">销售价</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.price" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">考核工时</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.examineHourPrice" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">成本</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.cost" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">预约项目</div>
<el-form-item>
<el-radio-group class="addinputInfo" style="font-size: 1px" v-model="formobj.isReserve">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">洗车项目</div>
<el-form-item>
<el-radio-group class="addinputInfo" style="font-size: 1px" v-model="formobj.isClean">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/maintenanceitem/maintenanceitem'
export default {
name: 'MaintenanceItemAdd',
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
tableKey: 0,
index: 0,
serviceType_list: [],
goodsModel_list: [],
manufacturer_list: [],
formobj: {
sid: '',
createBySid: '',
sitemName: '',
sitemCode: '',
serviceTypeSid: '',
serviceType: '',
goodsModelSid: '',
goodsModel: '',
manufacturerSid: '',
manufacturer: '',
hourPrice: '',
hours: '',
price: '',
examineHourPrice: '',
cost: '',
isReserve: '',
isClean: '',
sortNo: '',
remarks: '',
useOrgSid: '',
createOrgSid: ''
},
rules: {
sitemName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
serviceType: [{ required: true, message: '工种不能为空', trigger: 'change' }]
}
}
},
methods: {
init() {
req.getServiceType({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.serviceType_list = res.data
}
})
req.getVehModel({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.goodsModel_list = res.data
}
})
req.getManufacturers({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.manufacturer_list = res.data
}
})
},
showAdd() {
this.viewTitle = '【新增】维修项目'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
},
showEdit(row) {
this.viewTitle = '【新增】维修项目'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
serviceTypeChange(value) {
const choose = this.serviceType_list.filter((item) => item.serviceType === value)
if (choose !== null && choose.length > 0) {
this.formobj.serviceTypeSid = choose[0].serviceTypeSid
} else {
this.formobj.serviceTypeSid = ''
}
},
goodsModelChange(value) {
const choose = this.goodsModel_list.filter((item) => item.goodsModel === value)
if (choose !== null && choose.length > 0) {
this.formobj.goodsModelSid = choose[0].goodsModelSid
} else {
this.formobj.goodsModelSid = ''
}
},
manufacturerChange(value) {
const choose = this.manufacturer_list.filter((item) => item.manufacturer === value)
if (choose !== null && choose.length > 0) {
this.formobj.manufacturerSid = choose[0].manufacturerSid
} else {
this.formobj.manufacturerSid = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
createBySid: '',
sitemName: '',
sitemCode: '',
serviceTypeSid: '',
serviceType: '',
goodsModelSid: '',
goodsModel: '',
manufacturerSid: '',
manufacturer: '',
hourPrice: '',
hours: '',
price: '',
examineHourPrice: '',
cost: '',
isReserve: '',
isClean: '',
sortNo: '',
remarks: '',
useOrgSid: '',
createOrgSid: ''
}
this.submitdisabled = false
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
</style>

183
yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue

@ -0,0 +1,183 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">项目名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.sitemName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">拼音缩写</div>
<el-form-item><span class="addinputInfo">{{ formobj.sitemCode }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">工种</div>
<el-form-item><span class="addinputInfo">{{ formobj.serviceType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">车型</div>
<el-form-item><span class="addinputInfo">{{ formobj.goodsModel }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">厂家</div>
<el-form-item><span class="addinputInfo">{{ formobj.manufacturer }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">排序</div>
<el-form-item><span class="addinputInfo">{{ formobj.sortNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">工时单价</div>
<el-form-item><span class="addinputInfo">{{ formobj.hourPrice }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">工时数</div>
<el-form-item><span class="addinputInfo">{{ formobj.hours }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">销售价</div>
<el-form-item><span class="addinputInfo">{{ formobj.price }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">考核工时</div>
<el-form-item><span class="addinputInfo">{{ formobj.examineHourPrice }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">成本</div>
<el-form-item><span class="addinputInfo">{{ formobj.cost }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">预约项目</div>
<el-form-item><span class="addinputInfo">{{ formobj.isReserve == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">洗车项目</div>
<el-form-item><span class="addinputInfo">{{ formobj.isClean == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8">
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/maintenanceitem/maintenanceitem'
export default {
name: 'MaintenanceItemInfo',
data() {
return {
viewTitle: '',
viewState: 1,
formobj: {
sid: '',
createBySid: '',
sitemName: '',
sitemCode: '',
serviceTypeSid: '',
serviceType: '',
goodsModelSid: '',
goodsModel: '',
manufacturerSid: '',
manufacturer: '',
hourPrice: '',
hours: '',
price: '',
examineHourPrice: '',
cost: '',
isReserve: '',
isClean: '',
sortNo: '',
remarks: '',
useOrgSid: '',
createOrgSid: ''
},
rules: {}
}
},
methods: {
showInfo(row) {
this.viewTitle = '维修项目详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
handleReturn() {
this.formobj = {
sid: '',
createBySid: '',
sitemName: '',
sitemCode: '',
serviceTypeSid: '',
serviceType: '',
goodsModelSid: '',
goodsModel: '',
manufacturerSid: '',
manufacturer: '',
hourPrice: '',
hours: '',
price: '',
examineHourPrice: '',
cost: '',
isReserve: '',
isClean: '',
sortNo: '',
remarks: '',
useOrgSid: '',
createOrgSid: ''
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

326
yxt-as-ui/src/views/profession/profession.vue

@ -0,0 +1,326 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="工种管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="门店">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="工种">
<el-input v-model="listQuery.params.serviceTypeName" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">工种列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column prop="sortNo" label="排序" align="center" />
<el-table-column prop="serviceTypeName" label="类别名称" align="center" />
<el-table-column prop="percentageRate" label="提成比例" align="center" />
<el-table-column prop="percentageAmount" label="提成金额" align="center" />
<el-table-column prop="useOrgName" label="门店" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<el-dialog center :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">类别名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.serviceTypeName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">类别编码</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.serviceTypeCode" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">提成比例</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.percentageRate" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">提成金额</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.percentageAmount" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">排序</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sortNo" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="handleClose">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/profession/profession'
export default {
name: 'Profession',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
dialogVisible: false,
formobj: {
orgPath: '',
sid: '',
sortNo: '',
serviceTypeCode: '',
serviceTypeName: '',
percentageAmount: '',
percentageRate: ''
},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
useOrgName: '',
serviceTypeName: '',
store: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
useOrgName: '',
serviceTypeName: '',
store: ''
}
}
this.getList()
},
toAdd() {
this.dialogVisible = true
},
toEdit(row) {
this.dialogVisible = true
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
handleConfirm() {
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.formobj = {
orgPath: '',
sid: '',
sortNo: '',
serviceTypeCode: '',
serviceTypeName: '',
percentageAmount: '',
percentageRate: ''
}
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.span-sty {
width: 80px !important;
}
.addinputInfo {
margin-left: 75px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 75px !important;
width: calc(100% - 70px);
}
</style>
Loading…
Cancel
Save