Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 10 months ago
parent
commit
72e7bffb0c
  1. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java
  3. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java
  4. 24
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml
  5. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java
  6. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java
  7. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  8. 8
      yxt-as-ui/src/api/operation/salesticket.js
  9. 4
      yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue
  10. 13
      yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue
  11. 6
      yxt-as-ui/src/views/operation/salesticket/salesticket.vue
  12. 331
      yxt-as-ui/src/views/operation/salesticket/salesticketAdd.vue
  13. 94
      yxt-as-ui/src/views/operation/salesticket/salesticketInfo.vue
  14. 4
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
  15. 4
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDetailsVo.java
  16. 5
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDto.java
  17. 15
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java

@ -179,4 +179,8 @@ public interface BusSalesOrderVehicleFeign {
@ApiOperation("批量保存")
@PostMapping("/saveList")
ResultBean saveList(@RequestBody List<BusSalesOrderVehicle> vehicles);
@ApiOperation("批量修改")
@PostMapping("/updateVehiclesList")
ResultBean updateVehiclesList(@RequestBody List<BusSalesOrderVehicle> updateVehicles);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java

@ -178,4 +178,9 @@ public class BusSalesOrderVehicleFeignFallback implements BusSalesOrderVehicleFe
return null;
}
@Override
public ResultBean updateVehiclesList(List<BusSalesOrderVehicle> updateVehicles) {
return null;
}
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java

@ -187,4 +187,6 @@ public interface BusSalesOrderVehicleMapper extends BaseMapper<BusSalesOrderVehi
BusSalesOrderVehicle selByOrderSidAndVinNo(@Param("salesOrderSid") String salesOrderSid, @Param("vinNo") String vinNo);
int saveList(@Param("list") List<BusSalesOrderVehicle> list);
void updateVehiclesList(@Param("list") List<BusSalesOrderVehicle> list);
}

24
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml

@ -82,6 +82,30 @@
temporaryName = #{temporaryName}
where sid = #{sid}
</update>
<update id="updateVehiclesList" parameterType="java.util.List">
update bus_sales_order_vehicle
<trim prefix="set" suffixOverrides=",">
<trim prefix="borrowerSid =case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.borrowerSid !=null and item.borrowerSid != ''">
when id=#{item.id} then #{item.borrowerSid}
</if>
</foreach>
</trim>
<trim prefix="loanContractSid =case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.loanContractSid !=null and item.loanContractSid != ''">
when id=#{item.id} then #{item.loanContractSid}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" index="index" item="item"
separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select *

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java

@ -206,4 +206,11 @@ public class BusSalesOrderVehicleRest implements BusSalesOrderVehicleFeign {
int i = busSalesOrderVehicleService.saveList(vehicles);
return rb.success();
}
@Override
public ResultBean updateVehiclesList(List<BusSalesOrderVehicle> updateVehicles) {
ResultBean rb = ResultBean.fireFail();
busSalesOrderVehicleService.updateVehiclesList(updateVehicles);
return rb.success();
}
}

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java

@ -676,4 +676,8 @@ public class BusSalesOrderVehicleService extends MybatisBaseService<BusSalesOrde
public int saveList(List<BusSalesOrderVehicle> vehicles) {
return baseMapper.saveList(vehicles);
}
public void updateVehiclesList(List<BusSalesOrderVehicle> updateVehicles) {
baseMapper.updateVehiclesList(updateVehicles);
}
}

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -4916,6 +4916,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
List<CrmCustomerTemp> customerTemps = new ArrayList<>();//客户表
List<BusSalesOrder> orders = new ArrayList<>();//销售订单
List<BusSalesOrderVehicle> vehicles = new ArrayList<>();//销售订单车辆
List<BusSalesOrderVehicle> updateVehicles = new ArrayList<>();//销售订单车辆
List<BusSalesOrderBorrower> borrowers = new ArrayList<>();//贷款人
List<BusSalesOrderLoancontract> contracts = new ArrayList<>();//消贷合同
List<LoanRepaymentPlanDetails> planDetails = new ArrayList<>();//还款计划表明细
@ -5142,6 +5143,11 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
} else {
loanContractSid = vehicleData.getLoanContractSid();
}
if (StringUtils.isBlank(vehicleData.getBorrowerSid())) {
vehicleData.setBorrowerSid(borrowerSid);
vehicleData.setLoanContractSid(loanContractSid);
updateVehicles.add(vehicleData);
}
} else {
//生成销售订单贷款人表
BusSalesOrderBorrower busSalesOrderBorrower = new BusSalesOrderBorrower();
@ -5504,6 +5510,9 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
//批量插入数据
if (updateVehicles.size() > 0 && !updateVehicles.isEmpty()) {
busSalesOrderVehicleFeign.updateVehiclesList(updateVehicles);
}
if (schedules.size() > 0 && !schedules.isEmpty()) {
baseMapper.saveList(schedules);
}

8
yxt-as-ui/src/api/operation/salesticket.js

@ -32,6 +32,14 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
printSmsBill: function(data) {
return request({
url: '/sms/apiadmin/v1/smssalesbill/printSmsBill',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 结算
settle: function(data) {
return request({

4
yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue

@ -403,7 +403,7 @@ export default {
return
}
if (this.formobj.sitemVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' })
this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' })
return
}
this.$refs['form_obj'].validate((valid) => {
@ -436,7 +436,7 @@ export default {
return
}
if (this.formobj.sitemVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' })
this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' })
return
}
this.$refs['form_obj'].validate((valid) => {

13
yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue

@ -86,8 +86,8 @@
<el-col :span="8">
<div class="span-sty">班组</div>
<el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修'" v-model="formobj.groupName" placeholder="请选择" @change="groupChange" clearable filterable>
<el-option v-for="item in group_list" :key="item.groupSid" :label="item.groupName" :value="item.groupName"></el-option>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修'" v-model="formobj.groupSid" placeholder="请选择" @change="groupChange" clearable filterable>
<el-option v-for="item in group_list" :key="item.groupSid" :label="item.groupName" :value="item.groupSid"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -1018,6 +1018,7 @@ export default {
req.fetchBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
this.groupChange(this.formobj.groupSid)
if (this.formobj.fileName.length > 0) {
this.fileList = this.formobj.fileName
}
@ -1084,12 +1085,12 @@ export default {
}
},
groupChange(value) {
const choose = this.group_list.filter((item) => item.groupName === value)
const choose = this.group_list.filter((item) => item.groupSid === value)
if (choose.length > 0 && choose !== null) {
this.formobj.groupSid = choose[0].groupSid
this.formobj.groupName = choose[0].groupName
this.mainRepairersChange_list = choose[0].members
} else {
this.formobj.groupSid = ''
this.formobj.groupName = ''
this.mainRepairersChange_list = []
this.formobj.mainRepairers = ''
}
@ -1318,6 +1319,8 @@ export default {
row.discount = '10'
row.discountAmount = '0'
row.amount = row.price
row.staffNameList = []
row.staffList = []
if (this.mainRepairersChange_list.length > 0) {
this.mainRepairersChange_list.forEach((e) => {
row.staffNameList.push(e.memberName)

6
yxt-as-ui/src/views/operation/salesticket/salesticket.vue

@ -35,7 +35,7 @@
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="服务顾问">
<el-form-item label="销售人员">
<el-input v-model="listQuery.params.salesName" placeholder="" clearable/>
</el-form-item>
</el-form>
@ -57,7 +57,7 @@
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button type="primary" :disabled="scope.row.state == '已结算'" size="small" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
@ -67,7 +67,7 @@
<el-table-column prop="deptName" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="salesName" label="服务顾问" align="center" width="100" />
<el-table-column prop="salesName" label="销售人员" align="center" width="100" />
<el-table-column prop="customerName" label="客户名称" align="center" min-width="160" />
<el-table-column prop="vehMark" label="车牌号" align="center" width="100" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />

331
yxt-as-ui/src/views/operation/salesticket/salesticketAdd.vue

@ -7,6 +7,7 @@
<el-button type="primary" size="small" :disabled="submitdisabled" @click="selectCustomer()">选择客户</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="settleAccounts()">结算</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="print()">打印</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
@ -28,34 +29,18 @@
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="icon">*</span>服务顾问</div>
<div class="span-sty"><span class="icon">*</span>销售人员</div>
<el-form-item prop="salesName">
<el-select class="addinputInfo" v-model="formobj.salesName" placeholder="请选择" @change="waitorChange" clearable filterable>
<el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty"><span class="icon">*</span>科目</div>
<el-form-item prop="subject">
<el-select class="addinputInfo" v-model="formobj.subject" placeholder="请选择" @change="changeSubject" clearable filterable>
<el-option v-for="item in subject_list" :key="item.subjectSid" :label="item.subject" :value="item.subject"></el-option>
</el-select>
</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.shotRemarks" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<div class="span-sty">备注(打印)</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.printRemarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<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>
@ -82,14 +67,14 @@
<el-col :span="8">
<div class="span-sty">是否开发票</div>
<el-form-item>
<el-radio-group class="addinputInfo" style="font-size: 1px" v-model="formobj.invoiceVo.isInvoicing">
<el-radio-group class="addinputInfo" v-model="formobj.invoiceVo.isInvoicing" @change="isInvoicingChange">
<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>
<div class="span-sty">票类型</div>
<el-form-item>
<el-select class="addinputInfo" :disabled="formobj.invoiceVo.isInvoicing != '1'" v-model="formobj.invoiceVo.invoiceType" placeholder="请选择" @change="invoiceTypeChange" clearable filterable>
<el-option v-for="item in invoiceType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
@ -97,36 +82,36 @@
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票名称</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.invoiceVo.isInvoicing != '1'" v-model="formobj.invoiceVo.invoiceTitle" clearable placeholder="" /></el-form-item>
<div class="span-sty">税率(%)</div>
<el-form-item><el-input class="addinputInfo addinputw" @input="taxRateInput" :disabled="formobj.invoiceVo.isInvoicing != '1'" @keyup.native="formobj.invoiceVo.taxRate = getNumber(formobj.invoiceVo.taxRate, 2)" v-model="formobj.invoiceVo.taxRate" 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" :disabled="formobj.invoiceVo.isInvoicing != '1'" v-model="formobj.invoiceVo.taxpayerNo" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">税率(%)</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.invoiceVo.isInvoicing != '1'" @keyup.native="formobj.invoiceVo.taxRate = getNumber(formobj.invoiceVo.taxRate, 2)" v-model="formobj.invoiceVo.taxRate" clearable placeholder="" /></el-form-item>
<el-col :span="24">
<div class="span-sty">开票单位</div>
<el-form-item>
<el-select class="addinputInfo" :disabled="formobj.invoiceVo.isInvoicing != '1'" v-model="formobj.invoiceVo.invoiceTitleSid" placeholder="请选择" @change="changeCompanyInvoicing" clearable>
<el-option v-for="item in companyInvoicing_list" :key="item.companyInvoicingSid" :label="item.companyInvoicingName" :value="item.companyInvoicingSid"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
<div class="title titleOne">
<div>商品</div>
<el-button type="primary" size="mini" @click="commodityAdd">添加</el-button>
</div>
<div class="title">商品列表</div>
<el-table :key="commodityKey" :data="formobj.goodsVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column fixed label="操作" align="center" width="70">
<el-table-column align="center" width="80">
<template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="commodityAdd(scope.row)"></i>
</template>
<template slot-scope="scope">
<el-button type="danger" size="small" @click="commodityDelete(scope.$index)">删除</el-button>
<i class="el-icon-delete" @click="commodityDelete(scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="商品名称" width="200" align="center">
<el-table-column label="商品名称" align="center" width="200">
<template slot-scope="scope">
<el-popover placement="right" width="500" trigger="click">
<el-popover placement="right" trigger="click" width="500">
<div>
<el-table :data="commodityData" v-loading="commodityLoading" highlight-current-row @current-change="commodityCurrentChange($event, scope.row)">
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" />
@ -140,16 +125,15 @@
</el-popover>
</template>
</el-table-column>
<el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" />
<el-table-column prop="unit" label="单位" width="100" align="center" />
<el-table-column prop="supplierName" label="厂家" width="100" align="center" />
<el-table-column prop="currentCount" label="库存" width="100" align="center" />
<el-table-column label="销售价" align="center" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.price" @keyup.native="scope.row.price = getNumber(scope.row.price, 2)" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column prop="goodsSkuCode" label="图号" align="center" width="100" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" width="100" />
<el-table-column prop="unit" label="单位" align="center" width="100" />
<el-table-column prop="billObjName" label="供应商" align="center" width="150" />
<el-table-column prop="warehouseName" label="仓库" align="center" width="150" />
<el-table-column prop="areaName" label="库区" align="center" width="150" />
<el-table-column prop="warehouseRackCode" label="库位" align="center" width="150" />
<el-table-column prop="currentCount" label="库存" align="center" width="100" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column label="数量" align="center" width="100">
<template slot-scope="scope">
<el-input @input="computeYHAndXSJE(scope.row)" v-model="scope.row.count" @keyup.native="scope.row.count = getNumber(scope.row.count, 2)" clearable placeholder="" />
@ -160,23 +144,23 @@
<el-input @input="computeYHAndXSJE(scope.row)" v-model="scope.row.discount" @keyup.native="scope.row.discount = getNumber(scope.row.discount, 2)" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column prop="discountAmount" label="优惠" width="100" align="center" />
<el-table-column prop="amount" label="金额" width="100" align="center" />
<el-table-column prop="discountAmount" label="优惠" align="center" width="100" />
<el-table-column prop="amount" label="金额" align="center" width="100" />
<el-table-column label="备注" align="center" min-width="300">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
<div class="title titleOne">
<div>附加项目</div>
<el-button type="primary" size="mini" @click="subjoinAdd">添加</el-button>
</div>
<div class="title">附加项目</div>
<el-table :key="subjoinKey" :data="formobj.aitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed label="操作" align="center" width="70">
<el-table-column align="center" width="80">
<template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="subjoinAdd(scope.row)"></i>
</template>
<template slot-scope="scope">
<el-button type="danger" size="small" @click="subjoinDelete(scope.$index)">删除</el-button>
<i class="el-icon-delete" @click="subjoinDelete(scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="附加项目" align="center" width="200">
@ -185,7 +169,7 @@
<div>
<el-table :data="subjoinData" v-loading="subjoinLoading" highlight-current-row @current-change="subjoinCurrentChange($event, scope.row)">
<el-table-column fixed prop="aitemName" label="项目名称" align="center" />
<el-table-column prop="aitemCode" label="拼音缩写" align="center" />
<el-table-column prop="aitemCode" label="项目编码" align="center" />
<el-table-column prop="price" label="销售金额" align="center" />
</el-table>
<el-pagination :page.sync="subjoinQuery.current" :page-size="subjoinQuery.size" layout="total, pager" :total="subjoinQuery.total" />
@ -194,11 +178,7 @@
</el-popover>
</template>
</el-table-column>
<el-table-column label="销售价" align="center" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.price" @keyup.native="scope.row.price = getNumber(scope.row.price, 2)" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column label="备注" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
@ -208,14 +188,13 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">合计金额</div>
<el-form-item><span class="addinputInfo">{{ jeTotal }} = 材料费{{ clfTotal }} + 附加费{{ fjfTotal }} + 税额{{ seTotal }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ jeTotal }} = 材料费{{ clfTotal }} + 附加费{{ fjfTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">应收金额</div>
<el-form-item><span class="addinputInfo">{{ ysjeTotal }} = 合计金额{{ jeTotal }} - 优惠<el-input style="width: 100px" v-model="formobj.discountAmount" @keyup.native="formobj.discountAmount = getNumber(formobj.discountAmount, 2)" clearable placeholder="" /></span></el-form-item>
<!-- - 优惠券<el-input style="width: 100px" v-model="formobj.coupon" @keyup.native="formobj.coupon = getNumber(formobj.coupon, 2)" clearable placeholder="" /> - 积分抵扣<el-input style="width: 100px" v-model="formobj.scoreDeduct" @keyup.native="formobj.scoreDeduct = getNumber(formobj.scoreDeduct, 2)" clearable placeholder="" />-->
<el-form-item><span class="addinputInfo">{{ ysjeTotal }} = 合计金额{{ jeTotal }} - 优惠{{ yhTotal }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
@ -294,8 +273,9 @@
<script>
import req from '@/api/operation/salesticket'
import additionitem from '@/api/basicinformation/additionitem'
import { selAllByOrgSidPath, selSubjectInfo, typeValues, listPageSales, getOrgSidByPath } from '@/api/Common/dictcommons'
import { selAllByOrgSidPath, selSubjectInfo, typeValues, listPageSales, getOrgSidByPath, getInvoicingList } from '@/api/Common/dictcommons'
import selectCustomer from '@/components/publicPage/selectCustomer'
import {getStorage} from "@/utils/auth";
export default {
name: 'SalesTicketAdd',
@ -307,10 +287,11 @@ export default {
viewTitle: '',
viewState: 1,
submitdisabled: false,
user_list: [], //
user_list: [], //
subject_list: [], //
settleVisible: false, //
invoiceType_list: [], //
companyInvoicing_list: [], //
settle_list: [], //
otherSettle_list: [], //
activeNames: '1',
@ -343,6 +324,10 @@ export default {
subjoinData: [],
formobj: {
sid: '',
createOrgSid: '',
createOrgName: '',
useOrgSid: '',
useOrgName: '',
createTime: '',
createByName: '',
createBySid: '',
@ -365,14 +350,17 @@ export default {
scoreDeduct: '',
customerOrg: '',
receivableAmount: '',
goodsAmount: '',
addAmount: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
taxRate: '',
invoiceTitleSid: '',
invoiceTitle: ''
},
aitemVos: [],
goodsVos: [],
@ -392,8 +380,7 @@ export default {
}
},
rules: {
salesName: [{ required: true, message: '服务顾问不能为空', trigger: 'change' }],
subject: [{ required: true, message: '科目不能为空', trigger: 'change' }]
salesName: [{ required: true, message: '服务顾问不能为空', trigger: 'change' }]
}
}
},
@ -422,23 +409,26 @@ export default {
}
return fjf
},
// = *
seTotal() {
let se = '0'
se = Math.round((parseFloat(this.clfTotal) * (parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
return se
},
// = + + +
// = +
jeTotal() {
let je = '0'
je = Math.round((parseFloat(je) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal) + parseFloat(this.seTotal)) * 100) / 100
je = Math.round((parseFloat(je) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100
return je
},
//
// =
yhTotal() {
let yh = '0'
if (this.formobj.goodsVos.length > 0) {
this.formobj.goodsVos.forEach((e) => {
yh = Math.round((parseFloat(yh) + parseFloat(e.discountAmount !== '' ? e.discountAmount : '0')) * 100) / 100
})
}
return yh
},
// = -
ysjeTotal() {
let ysje = '0'
ysje = Math.round((parseFloat(ysje) + parseFloat(this.jeTotal) - parseFloat(this.formobj.discountAmount !== '' ? this.formobj.discountAmount : '0')) * 100) / 100
// - parseFloat(this.formobj.coupon !== '' ? this.formobj.coupon : '0') - parseFloat(this.formobj.scoreDeduct !== '' ? this.formobj.scoreDeduct : '0')
ysje = Math.round((parseFloat(ysje) + parseFloat(this.jeTotal) - parseFloat(this.yhTotal)) * 100) / 100
return ysje
},
// = - - -
@ -455,6 +445,11 @@ export default {
this.invoiceType_list = res.data
}
})
getInvoicingList({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.companyInvoicing_list = res.data
}
})
typeValues({ type: 'settle' }).then((res) => {
if (res.success) {
this.settle_list = res.data
@ -511,6 +506,7 @@ export default {
day: nowDate.getDate()
}
this.formobj.createTime = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
this.formobj.invoiceVo.isInvoicing = '0'
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
@ -543,14 +539,6 @@ export default {
this.formobj.vehMark = value.vehMark
this.formobj.vinNo = value.vinNo
},
changeSubject(value) {
const choose = this.subject_list.filter((item) => item.subject === value)
if (choose.length > 0 && choose !== null) {
this.formobj.subjectSid = choose[0].subjectSid
} else {
this.formobj.subjectSid = ''
}
},
waitorChange(value) {
const choose = this.user_list.filter((item) => item.name === value)
if (choose.length > 0 && choose !== null) {
@ -559,6 +547,16 @@ export default {
this.formobj.salesUserSid = ''
}
},
isInvoicingChange() {
if (this.formobj.invoiceVo.isInvoicing !== '1') {
this.formobj.invoiceVo.invoiceTitle = ''
this.formobj.invoiceVo.invoiceTitleSid = ''
this.formobj.invoiceVo.invoiceType = ''
this.formobj.invoiceVo.invoiceTypeKey = ''
this.formobj.invoiceVo.taxRate = ''
}
this.taxRateInput()
},
invoiceTypeChange(value) {
const choose = this.invoiceType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) {
@ -567,6 +565,44 @@ export default {
this.formobj.invoiceVo.invoiceTypeKey = ''
}
},
taxRateInput() {
if (this.formobj.goodsVos.length > 0) {
this.formobj.aitemVos.forEach((k) => {
if (this.formobj.invoiceVo.isInvoicing === '1') {
if (k.isTaxRate === '0') {
// =
k.price = k.goodsDetailsPrice
} else {
// = + * (1 + )
k.price = Math.round((parseFloat(k.goodsDetailsPrice) + parseFloat(k.goodsDetailsPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
}
this.computeYHAndXSJE(k)
} else {
// =
k.price = k.goodsDetailsPrice
}
})
}
if (this.formobj.aitemVos.length > 0) {
this.formobj.aitemVos.forEach((e) => {
if (this.formobj.invoiceVo.isInvoicing === '1') {
// = + * (1 + )
e.price = Math.round((parseFloat(e.aitemPrice) + parseFloat(e.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
// =
e.price = e.aitemPrice
}
})
}
},
changeCompanyInvoicing(value) {
const choose = this.companyInvoicing_list.filter((item) => item.companyInvoicingSid === value)
if (choose.length > 0 && choose !== null) {
this.formobj.invoiceVo.invoiceTitle = choose[0].companyInvoicingName
} else {
this.formobj.invoiceVo.invoiceTitle = ''
}
},
commodityAdd() {
this.formobj.goodsVos.push({
goodSpuSid: '',
@ -576,7 +612,13 @@ export default {
goodsSkuOwnSpec: '', //
unit: '', //
warehouseName: '', //
warehouseSid: '',
areaName: '', //
areaSid: '',
warehouseRackCode: '', //
warehouseRackSid: '',
billObjName: '', //
billObjSid: '',
count: '', // /退
price: '', //
discount: '', // (0-10010)
@ -611,10 +653,29 @@ export default {
row.goodsSkuCode = value.goodsSkuCode
row.goodsSkuOwnSpec = value.goodsSkuOwnSpec
row.unit = value.unit
row.warehouseName = ''
row.warehouseRackCode = ''
row.warehouseName = value.warehouseName
row.warehouseSid = value.warehouseSid
row.areaName = value.areaName
row.areaSid = value.areaSid
row.warehouseRackCode = value.warehouseRackCode
row.warehouseRackSid = value.warehouseRackSid
row.billObjName = value.billObjName
row.billObjSid = value.billObjSid
row.count = value.count
row.price = value.price
row.goodsDetailsPrice = value.price
row.isTaxRate = value.isTaxRate
if (this.formobj.invoiceVo.isInvoicing === '1') {
if (row.isTaxRate === '0') {
// =
row.price = row.goodsDetailsPrice
} else {
// = + * (1 + )
row.price = Math.round((parseFloat(row.goodsDetailsPrice) + parseFloat(row.goodsDetailsPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
}
} else {
// =
row.price = row.goodsDetailsPrice
}
row.discount = ''
row.discountAmount = ''
row.amount = ''
@ -627,15 +688,15 @@ export default {
commodityDelete(index) {
this.formobj.goodsVos.splice(index, 1)
},
//
// --
computeYHAndXSJE(row) {
// ( * (1 - ( * 0.1)))
row.discountAmount = Math.round(((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count === '' ? '0' : row.count)) * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100
// ( - )
// ( * * (1 - ( * 0.1)))
row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100
// ( * - )
if (row.price == 0) {
row.amount = '0'
} else {
row.amount = Math.round(((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count === '' ? '0' : row.count)) - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100
row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100
}
},
subjoinAdd() {
@ -667,13 +728,31 @@ export default {
subjoinCurrentChange(value, row) {
row.aitemSid = value.sid
row.aitemName = value.aitemName
row.price = value.price
row.aitemPrice = value.price
if (this.formobj.invoiceVo.isInvoicing === '1') {
// = + * (1 + )
row.price = Math.round((parseFloat(row.aitemPrice) + parseFloat(row.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
// =
row.price = row.aitemPrice
}
document.body.click()
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
if (this.formobj.customerName === '') {
this.$message({ showClose: true, type: 'error', message: '客户信息不能为空' })
return
}
if (this.formobj.goodsVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '商品列表不能为空' })
return
}
this.formobj.receivableAmount = this.ysjeTotal
this.formobj.discountAmount = this.yhTotal
this.formobj.goodsAmount = this.clfTotal //
this.formobj.addAmount = this.fjfTotal //
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
@ -719,6 +798,9 @@ export default {
return
}
this.formobj.receivableAmount = this.ysjeTotal
this.formobj.discountAmount = this.yhTotal
this.formobj.goodsAmount = this.clfTotal //
this.formobj.addAmount = this.fjfTotal //
this.submitdisabled = true
req.settle(this.formobj).then((res) => {
if (res.success) {
@ -733,6 +815,36 @@ export default {
}
})
},
print() {
if (this.formobj.sid !== '') {
req.printSmsBill({ sid: this.formobj.sid, userSid: this.formobj.createBySid, createOrgSid: this.formobj.createOrgSid, useOrgSid: this.formobj.deptSid }).then((res) => {
if (res.success) {
var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '销售单', true)
xhr.setRequestHeader('token', getStorage())
xhr.responseType = 'blob'
xhr.onload = function(e) {
//
var blob = this.response
var filename = '销售单.pdf'
var a = document.createElement('a')
// blob.type="application/octet-stream";
// url
var url = URL.createObjectURL(blob)
a.href = url
a.download = filename
a.click()
// URL
window.URL.revokeObjectURL(url)
}
//
xhr.send()
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请保存相关信息后在进行打印' })
}
},
resetState() {
this.viewState = 1
},
@ -740,6 +852,10 @@ export default {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
createOrgSid: '',
createOrgName: '',
useOrgSid: '',
useOrgName: '',
createTime: '',
createByName: '',
createBySid: '',
@ -762,14 +878,17 @@ export default {
scoreDeduct: '',
customerOrg: '',
receivableAmount: '',
goodsAmount: '',
addAmount: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
taxRate: '',
invoiceTitleSid: '',
invoiceTitle: ''
},
aitemVos: [],
goodsVos: [],
@ -812,11 +931,9 @@ export default {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
</style>

94
yxt-as-ui/src/views/operation/salesticket/salesticketInfo.vue

@ -25,26 +25,14 @@
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<div class="span-sty">销售人员</div>
<el-form-item><span class="addinputInfo">{{ formobj.salesName }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">科目</div>
<el-form-item><span class="addinputInfo">{{ formobj.subject }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">快捷备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.shotRemarks }}</span></el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<div class="span-sty">备注(打印)</div>
<el-form-item><span class="addinputInfo">{{ formobj.printRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="8">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
@ -77,30 +65,29 @@
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceTitle }}</span></el-form-item>
<div class="span-sty">税率(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.taxRate }}</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.invoiceVo.taxpayerNo }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">税率(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.taxRate }}</span></el-form-item>
<el-col :span="24">
<div class="span-sty">开票单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceTitle }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
<div class="title">商品</div>
<div class="title">商品列表</div>
<el-table :key="commodityKey" :data="formobj.goodsVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" width="200" align="center" />
<el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" />
<el-table-column prop="unit" label="单位" width="100" align="center" />
<el-table-column prop="supplierName" label="厂家" width="100" align="center" />
<el-table-column prop="billObjName" label="供应商" align="center" width="150" />
<el-table-column prop="warehouseName" label="仓库" align="center" width="150" />
<el-table-column prop="areaName" label="库区" align="center" width="150" />
<el-table-column prop="warehouseRackCode" label="库位" align="center" width="150" />
<el-table-column prop="currentCount" label="库存" width="100" align="center" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="count" label="数量" align="center" width="100" />
@ -119,14 +106,13 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">合计金额</div>
<el-form-item><span class="addinputInfo">{{ jeTotal }} = 材料费{{ clfTotal }} + 附加费{{ fjfTotal }} + 税额{{ seTotal }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ jeTotal }} = 材料费{{ clfTotal }} + 附加费{{ fjfTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">应收金额</div>
<el-form-item><span class="addinputInfo">{{ ysjeTotal }} = 合计金额{{ jeTotal }} - 优惠{{ formobj.discountAmount }}</span></el-form-item>
<!-- - 优惠券<el-input style="width: 100px" v-model="formobj.coupon" @keyup.native="formobj.coupon = getNumber(formobj.coupon, 2)" clearable placeholder="" /> - 积分抵扣<el-input style="width: 100px" v-model="formobj.scoreDeduct" @keyup.native="formobj.scoreDeduct = getNumber(formobj.scoreDeduct, 2)" clearable placeholder="" />-->
</el-col>
</el-row>
</el-form>
@ -152,6 +138,10 @@ export default {
subjoinKey: 2,
formobj: {
sid: '',
createOrgSid: '',
createOrgName: '',
useOrgSid: '',
useOrgName: '',
createTime: '',
createByName: '',
createBySid: '',
@ -174,14 +164,17 @@ export default {
scoreDeduct: '',
customerOrg: '',
receivableAmount: '',
goodsAmount: '',
addAmount: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
taxRate: '',
invoiceTitleSid: '',
invoiceTitle: ''
},
aitemVos: [],
goodsVos: [],
@ -204,13 +197,13 @@ export default {
}
},
computed: {
// =
// =
clfTotal() {
let clf = '0'
if (this.formobj.goodsVos.length > 0) {
this.formobj.goodsVos.forEach((e) => {
if (e.goodsSpuName !== '') {
clf = Math.round((parseFloat(clf) + parseFloat(e.price !== '' ? e.price : '0')) * 100) / 100
clf = Math.round((parseFloat(clf) + (parseFloat(e.price !== '' ? e.price : '0') * parseFloat(e.count !== '' ? e.count : '0'))) * 100) / 100
}
})
}
@ -228,31 +221,18 @@ export default {
}
return fjf
},
// = *
seTotal() {
let se = '0'
se = Math.round((parseFloat(this.clfTotal) * (parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
return se
},
// = + + +
// = +
jeTotal() {
let je = '0'
je = Math.round((parseFloat(je) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal) + parseFloat(this.seTotal)) * 100) / 100
je = Math.round((parseFloat(je) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100
return je
},
//
// = -
ysjeTotal() {
let ysje = '0'
ysje = Math.round((parseFloat(ysje) + parseFloat(this.jeTotal) - parseFloat(this.formobj.discountAmount !== '' ? this.formobj.discountAmount : '0')) * 100) / 100
// - parseFloat(this.formobj.coupon !== '' ? this.formobj.coupon : '0') - parseFloat(this.formobj.scoreDeduct !== '' ? this.formobj.scoreDeduct : '0')
return ysje
},
// = - - -
qkjeTotal() {
let qkje = '0'
qkje = Math.round((parseFloat(this.ysjeTotal) - parseFloat(this.formobj.settlementVo.depositdeductAmount !== '' ? this.formobj.settlementVo.depositdeductAmount : '0') - parseFloat(this.formobj.settlementVo.settleAmount !== '' ? this.formobj.settlementVo.settleAmount : '0') - parseFloat(this.formobj.settlementVo.otherSettleAmount !== '' ? this.formobj.settlementVo.otherSettleAmount : '0')) * 100) / 100
return qkje
}
},
methods: {
showInfo(row) {
@ -266,14 +246,13 @@ export default {
}
})
},
selectCustomer() {
this.viewState = 2
this.$refs['divCus'].getList()
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
handleReturn() {
this.formobj = {
sid: '',
createOrgSid: '',
createOrgName: '',
useOrgSid: '',
useOrgName: '',
createTime: '',
createByName: '',
createBySid: '',
@ -296,14 +275,17 @@ export default {
scoreDeduct: '',
customerOrg: '',
receivableAmount: '',
goodsAmount: '',
addAmount: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
taxRate: '',
invoiceTitleSid: '',
invoiceTitle: ''
},
aitemVos: [],
goodsVos: [],

4
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java

@ -102,4 +102,8 @@ public class SmsSalesBill extends BaseEntity {
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("材料费")
private BigDecimal goodsAmount;
@ApiModelProperty("附加费")
private BigDecimal addAmount;
}

4
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDetailsVo.java

@ -110,6 +110,10 @@ public class SmsSalesBillDetailsVo implements Vo {
private String customerOrg; // 客户单位
@ApiModelProperty("应收金额")
private String receivableAmount;
@ApiModelProperty("材料费")
private String goodsAmount;
@ApiModelProperty("附加费")
private String addAmount;
private List<SmsAttachitemVo> aitemVos = new ArrayList<>();// 附加项目

5
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDto.java

@ -100,7 +100,10 @@ public class SmsSalesBillDto implements Dto {
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("材料费")
private String goodsAmount;
@ApiModelProperty("附加费")
private String addAmount;
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("备注")

15
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

@ -688,16 +688,17 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
goodsPdfVo.setSortNo(String.valueOf(i + 1));
BigDecimal price = BigDecimal.ZERO;
BigDecimal count = BigDecimal.ZERO;
if (null != goodsDetailsVo.getPrice()) {
price = goodsDetailsVo.getPrice();
if (null != goodsDetailsVo.getAmount()) {
price = goodsDetailsVo.getAmount();
}
if (null != goodsDetailsVo.getCount()) {
count = goodsDetailsVo.getCount();
}
BigDecimal amount = price.multiply(count);
// if (null != goodsDetailsVo.getCount()) {
// count = goodsDetailsVo.getCount();
// }
// BigDecimal amount = price.multiply(count);
goodsPdfVos.add(goodsPdfVo);
sumMoney2.add(amount);
sumMoney2 = sumMoney2.add(price);
}
vo.setGoods(goodsPdfVos);
}
vo.setAmountTotal(sumMoney2.toString());
String caps2 = bigDecimalToLocalStr(sumMoney2);

Loading…
Cancel
Save