Browse Source

Merge remote-tracking branch 'origin/master'

master
dimengzhe 1 week ago
parent
commit
8cf9ea7fa1
  1. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java
  2. 12
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java
  3. 3314
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/cgtk.ftl
  4. 4186
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/fkce.ftl
  5. 599
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/khba.ftl
  6. 3548
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/tctz.ftl
  7. 7
      anrui-buscenter/anrui-buscenter-ui/src/api/salesManagement/salesorderbycar.js
  8. 8
      anrui-buscenter/anrui-buscenter-ui/src/api/valuablecustomer/valuablecustomer.js
  9. 34
      anrui-buscenter/anrui-buscenter-ui/src/views/valuablecustomer/valuablecustomer.vue
  10. 27
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycar.vue
  11. 7
      anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js
  12. 27
      anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue
  13. 17
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java
  14. 83
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  15. 42
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java
  16. 7
      anrui-scm/anrui-scm-ui/src/api/supplychain/purchasereturntowarehouse.js
  17. 10
      anrui-scm/anrui-scm-ui/src/api/supplychain/tiaozhangshenqing.js
  18. 35
      anrui-scm/anrui-scm-ui/src/views/supplychain/caigoutuiku/caigoutuiku.vue
  19. 38
      anrui-scm/anrui-scm-ui/src/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanli.vue
  20. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryAlloSelectList.java
  21. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  22. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillQueryNew.java
  23. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebilldetail/WmsInventoryAllocateBillDetail.java
  24. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebilldetail/WmsInventoryAllocateBillDetailDtoNew.java
  25. 22
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailGoodPageListQuery.java
  26. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailGoodPageListVo.java
  27. 46
      工作内容需要的文档/单据模板/价值客户备案模板/价值客户备案.docx
  28. 71
      工作内容需要的文档/单据模板/放款差额模板/放款差额.docx
  29. 55
      工作内容需要的文档/单据模板/销售退车模板/销售退车.docx

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java

@ -1287,7 +1287,7 @@ public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMa
String typeName = dateStr + seconds + ".doc"; String typeName = dateStr + seconds + ".doc";
// 生成文件路径 // 生成文件路径
String targetPath = sourcePath + dateStr; String targetPath = sourcePath + dateStr;
WordUtils.creatWord(dataMap, "tzsq", sourcePath, targetPath, typeName); WordUtils.creatWord(dataMap, "tctz", sourcePath, targetPath, typeName);
//新生成的word路径 //新生成的word路径
String wordPath = targetPath + "\\" + typeName; String wordPath = targetPath + "\\" + typeName;
//生成出门证文件名 //生成出门证文件名

12
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java

@ -1137,6 +1137,12 @@ public class BusValcustFilingService extends MybatisBaseService<BusValcustFiling
public String createPdf(String sid, String userName) { public String createPdf(String sid, String userName) {
BusValcustFiling busValcustFiling = fetchBySid(sid); BusValcustFiling busValcustFiling = fetchBySid(sid);
BusValcustFilingDetailsVo busValcustFilingDetailsVo = fetchDetailsVoBySid(sid); BusValcustFilingDetailsVo busValcustFilingDetailsVo = fetchDetailsVoBySid(sid);
if (StringUtils.isBlank(busValcustFilingDetailsVo.getYsMoney())){
busValcustFilingDetailsVo.setYsMoney("0");
}
if (StringUtils.isBlank(busValcustFilingDetailsVo.getSsMoney())){
busValcustFilingDetailsVo.setSsMoney("0");
}
Map<String, Object> dataMap = new HashMap<String, Object>(); Map<String, Object> dataMap = new HashMap<String, Object>();
//分公司 //分公司
dataMap.put("orgName", busValcustFilingDetailsVo.getUseOrgName()); dataMap.put("orgName", busValcustFilingDetailsVo.getUseOrgName());
@ -1157,12 +1163,6 @@ public class BusValcustFilingService extends MybatisBaseService<BusValcustFiling
dataMap.put("hj", busValcustFilingDetailsVo.getTotalMoney()); dataMap.put("hj", busValcustFilingDetailsVo.getTotalMoney());
dataMap.put("yssxf", busValcustFilingDetailsVo.getYsMoney()); dataMap.put("yssxf", busValcustFilingDetailsVo.getYsMoney());
dataMap.put("sssxf", busValcustFilingDetailsVo.getSsMoney()); dataMap.put("sssxf", busValcustFilingDetailsVo.getSsMoney());
if (StringUtils.isBlank(busValcustFilingDetailsVo.getYsMoney())){
busValcustFilingDetailsVo.setYsMoney("0");
}
if (StringUtils.isBlank(busValcustFilingDetailsVo.getSsMoney())){
busValcustFilingDetailsVo.setSsMoney("0");
}
dataMap.put("ce", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).subtract(new BigDecimal(busValcustFilingDetailsVo.getSsMoney()))); dataMap.put("ce", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).subtract(new BigDecimal(busValcustFilingDetailsVo.getSsMoney())));
dataMap.put("yssxfhj", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum()))); dataMap.put("yssxfhj", new BigDecimal(busValcustFilingDetailsVo.getYsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum())));
dataMap.put("sssxfhj", new BigDecimal(busValcustFilingDetailsVo.getSsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum()))); dataMap.put("sssxfhj", new BigDecimal(busValcustFilingDetailsVo.getSsMoney()).multiply(new BigDecimal(busValcustFilingDetailsVo.getNum())));

3314
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/cgtk.ftl

File diff suppressed because it is too large

4186
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/fkce.ftl

File diff suppressed because it is too large

599
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/jzkhba.ftl → anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/khba.ftl

File diff suppressed because it is too large

3548
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/tctz.ftl

File diff suppressed because it is too large

7
anrui-buscenter/anrui-buscenter-ui/src/api/salesManagement/salesorderbycar.js

@ -19,6 +19,13 @@ export default {
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
}, },
createPdf: function(data) {
return request({
url: '/buscenter/v1/bussalesorderreturnvehapply/createPdf',
method: 'post',
params: data
})
},
// 保存修改记录 // 保存修改记录
saveOrUpdate: function(params) { saveOrUpdate: function(params) {
return request({ return request({

8
anrui-buscenter/anrui-buscenter-ui/src/api/valuablecustomer/valuablecustomer.js

@ -24,6 +24,14 @@ export function save(data) {
}) })
} }
export function createPdf(data) {
return request({
url: '/buscenter/v1/busvalcustfiling/createPdf',
method: 'post',
params: data
})
}
// 根据Sid获取一条记录 // 根据Sid获取一条记录
export function fetchDetailsBySid(data) { export function fetchDetailsBySid(data) {
return request({ return request({

34
anrui-buscenter/anrui-buscenter-ui/src/views/valuablecustomer/valuablecustomer.vue

@ -38,9 +38,9 @@
<el-table-column fixed width="80px" label="编号" type="index" :index="indexMethod" align="center"/> <el-table-column fixed width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" align="center" width="180"> <el-table-column fixed label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="small" :disabled="scope.row.nodeState == '发起申请' ? false : scope.row.nodeState == '待提交' ? false : true" @click="toEdit(scope.row)">办理 <el-button type="primary" size="mini" :disabled="scope.row.nodeState == '发起申请' ? false : scope.row.nodeState == '待提交' ? false : true" @click="toEdit(scope.row)">办理</el-button>
</el-button> <el-button type="primary" size="mini" v-if="scope.row.nodeState =='已办结'" @click="toDownload(scope.row)">下载</el-button>
<el-button type="primary" size="small" @click="toInfo(scope.row)">查看</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" width="150" header-align="center"> <el-table-column label="状态" width="150" header-align="center">
@ -85,7 +85,7 @@
</template> </template>
<script> <script>
import { listPage } from '@/api/valuablecustomer/valuablecustomer' import { listPage, createPdf } from '@/api/valuablecustomer/valuablecustomer'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
@ -254,6 +254,32 @@ export default {
this.viewState = 2 this.viewState = 2
this.$refs['divAdd'].showEdit(row) this.$refs['divAdd'].showEdit(row)
}, },
toDownload(row) {
createPdf({ sid: row.sid, userName: window.sessionStorage.getItem('name') }).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()
}
}).catch(() => {})
},
toInfo(row) { toInfo(row) {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)

27
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdantuiche/salesorderbycar.vue

@ -37,6 +37,7 @@
<el-table-column label="操作" width="180" align="center"> <el-table-column label="操作" width="180" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)" :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true">办理</el-button> <el-button type="primary" size="mini" @click="toEdit(scope.row)" :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true">办理</el-button>
<el-button type="primary" size="mini" v-if="scope.row.nodeState =='已办结'" @click="toDownload(scope.row)">下载</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -320,6 +321,32 @@ export default {
}).catch(() => { }).catch(() => {
}) })
}, },
toDownload(row) {
req.createPdf({ sid: row.sid, userName: window.sessionStorage.getItem('name') }).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()
}
}).catch(() => {})
},
toInfo(row) { toInfo(row) {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)

7
anrui-riskcenter-ui/src/api/loanbalancerecognition/loanbalancerecognition.js

@ -17,6 +17,13 @@ export default {
params: data params: data
}) })
}, },
createPdf: function(data) {
return request({
url: '/riskcenter/v1/LoanDiff/createPdf',
method: 'post',
params: data
})
},
saveOrUpdate: function(data) { saveOrUpdate: function(data) {
return request({ return request({
url: '/riskcenter/v1/LoanDiff/update', url: '/riskcenter/v1/LoanDiff/update',

27
anrui-riskcenter-ui/src/views/loanbalancerecognition/loanbalancerecognition.vue

@ -43,6 +43,7 @@
<el-table-column label="操作" width="180px" align="center"> <el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)" :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true">办理</el-button> <el-button type="primary" size="mini" @click="toEdit(scope.row)" :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true">办理</el-button>
<el-button type="primary" size="mini" :disabled="scope.row.nodeState !='已办结'" @click="toDownload(scope.row)">下载</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -324,6 +325,32 @@ export default {
this.viewState = 2 this.viewState = 2
this.$refs['divAdd'].showEdit(row) this.$refs['divAdd'].showEdit(row)
}, },
toDownload(row) {
req.createPdf({ sid: row.sid, userName: window.sessionStorage.getItem('name') }).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()
}
}).catch(() => {})
},
toInfo(row) { toInfo(row) {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)

17
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffPdfVo.java

@ -32,11 +32,6 @@ import lombok.Data;
@Data @Data
public class LoanDiffPdfVo implements Vo { public class LoanDiffPdfVo implements Vo {
private Integer id;
@ApiModelProperty("资方")
private String zf;
@ApiModelProperty("贷款人")
private String dkr;
@ApiModelProperty("车架号") @ApiModelProperty("车架号")
private String vinNo; private String vinNo;
@ApiModelProperty("放款金额-应放") @ApiModelProperty("放款金额-应放")
@ -58,15 +53,15 @@ public class LoanDiffPdfVo implements Vo {
@ApiModelProperty("其他融厂家贴息-差额") @ApiModelProperty("其他融厂家贴息-差额")
private String ce9; private String ce9;
@ApiModelProperty("固定贷款保证金-预计") @ApiModelProperty("固定贷款保证金-预计")
private String yj10; private String gd1;
@ApiModelProperty("固定贷款保证金-实际") @ApiModelProperty("固定贷款保证金-实际")
private String sj11; private String gd2;
@ApiModelProperty("固定贷款保证金-差额") @ApiModelProperty("固定贷款保证金-差额")
private String ce12; private String gd3;
@ApiModelProperty("意外险-已收") @ApiModelProperty("意外险-已收")
private String ys13; private String yw1;
@ApiModelProperty("意外险-实际") @ApiModelProperty("意外险-实际")
private String sj14; private String yw2;
@ApiModelProperty("意外险-差额") @ApiModelProperty("意外险-差额")
private String ce15; private String yw3;
} }

83
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -312,7 +312,88 @@
WHEN 1 THEN '控制成功' WHEN 1 THEN '控制成功'
WHEN 2 THEN '控制失败' WHEN 2 THEN '控制失败'
WHEN 3 THEN '已解控' WHEN 3 THEN '已解控'
END AS lockCarState END AS lockCarState,
CASE
WHEN lrpd.dueDate > lrpd.updateTime or lrpd.updateTime IS NULL THEN '1'
WHEN lrpd.dueDate &lt;= lrpd.updateTime AND (IFNULL(
(
lrpd.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( lrh.actualMoney, 0 ))
FROM
loan_repayment_history AS lrh
WHERE
lrh.planDetailSid = lrpd.sid
AND lrh.updateState = '1'
),
0
)),
0
) + IFNULL((
SELECT
( fjj.reveivableMoney - fjj.m )
FROM
(
SELECT
IFNULL((
SELECT
SUM( subscriptionMoney )
FROM
anrui_fin.fin_selected_receivables_detailed AS s
WHERE
s.auditState = '3'
AND s.receivablesSid = fj.sid
),
0
) AS m,
fj.*
FROM
( SELECT j.busSid, j.sid, j.reveivableMoney FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j WHERE j.payCostTitleKey = '006' ) AS fj
) AS fjj
WHERE
fjj.busSid = lrpd.sid
),0) + IFNULL(lrpd.paymentInterest,0)) > 0 THEN '0'
WHEN lrpd.dueDate &lt;= lrpd.updateTime AND (IFNULL(
(
lrpd.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( lrh.actualMoney, 0 ))
FROM
loan_repayment_history AS lrh
WHERE
lrh.planDetailSid = lrpd.sid
AND lrh.updateState = '1'
),
0
)),
0
) + IFNULL((
SELECT
( fjj.reveivableMoney - fjj.m )
FROM
(
SELECT
IFNULL((
SELECT
SUM( subscriptionMoney )
FROM
anrui_fin.fin_selected_receivables_detailed AS s
WHERE
s.auditState = '3'
AND s.receivablesSid = fj.sid
),
0
) AS m,
fj.*
FROM
( SELECT j.busSid, j.sid, j.reveivableMoney FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j WHERE j.payCostTitleKey = '006' ) AS fj
) AS fjj
WHERE
fjj.busSid = lrpd.sid
),0) + IFNULL(lrpd.paymentInterest,0)) &lt;= 0 THEN '1'
END AS nowOverdue
FROM loan_repayment_plan_details lrpd FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid ON lrh.planDetailSid = lrpd.sid

42
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java

@ -80,6 +80,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.YearMonth; import java.time.YearMonth;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@ -883,33 +884,30 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
dataMap.put("billNo", loanDiff.getBillNo()); dataMap.put("billNo", loanDiff.getBillNo());
List<LoanDiffPdfVo> loanDiffPdfVos = new ArrayList<>(); List<LoanDiffPdfVo> loanDiffPdfVos = new ArrayList<>();
//循环获取车辆信息 //循环获取车辆信息
Integer i = 1;
for (LoanDiffDetailssVo loanDiffDetailssVo : data.getLoanDiffDetails()) { for (LoanDiffDetailssVo loanDiffDetailssVo : data.getLoanDiffDetails()) {
LoanDiffPdfVo loanDiffPdfVo = new LoanDiffPdfVo(); LoanDiffPdfVo loanDiffPdfVo = new LoanDiffPdfVo();
loanDiffPdfVo.setId(i);
i = i + 1;
loanDiffPdfVo.setZf(loanDiffDetailssVo.getBankName());
loanDiffPdfVo.setDkr(loanDiffDetailssVo.getBorrowName());
loanDiffPdfVo.setVinNo(loanDiffDetailssVo.getVinNo()); loanDiffPdfVo.setVinNo(loanDiffDetailssVo.getVinNo());
loanDiffPdfVo.setYf1(loanDiffDetailssVo.getMakeLoan().toString()); loanDiffPdfVo.setYf1(loanDiffDetailssVo.getMakeLoan() == null ? "0" : loanDiffDetailssVo.getMakeLoan().toString());
loanDiffPdfVo.setSf2(loanDiffDetailssVo.getRealityLoan().toString()); loanDiffPdfVo.setSf2(loanDiffDetailssVo.getRealityLoan() == null ? "0" : loanDiffDetailssVo.getRealityLoan().toString());
loanDiffPdfVo.setCe3(loanDiffDetailssVo.getDiffLoan().toString()); loanDiffPdfVo.setCe3(loanDiffDetailssVo.getDiffLoan() == null ? "0" : loanDiffDetailssVo.getDiffLoan().toString());
loanDiffPdfVo.setYj4(loanDiffDetailssVo.getMakeDiscount().toString()); loanDiffPdfVo.setYj4(loanDiffDetailssVo.getMakeDiscount() == null ? "0" : loanDiffDetailssVo.getMakeDiscount().toString());
loanDiffPdfVo.setSj5(loanDiffDetailssVo.getRealityOtherDiscount().toString()); loanDiffPdfVo.setSj5(loanDiffDetailssVo.getRealityDiscount() == null ? "0" : loanDiffDetailssVo.getRealityDiscount().toString());
loanDiffPdfVo.setCe6(loanDiffDetailssVo.getDiffDiscount().toString()); loanDiffPdfVo.setCe6(loanDiffDetailssVo.getDiffDiscount() == null ? "0" : loanDiffDetailssVo.getDiffDiscount().toString());
loanDiffPdfVo.setYj7(loanDiffDetailssVo.getMakeOtherDiscount().toString()); loanDiffPdfVo.setYj7(loanDiffDetailssVo.getMakeOtherDiscount() == null ? "0" : loanDiffDetailssVo.getMakeOtherDiscount().toString());
loanDiffPdfVo.setSj8(loanDiffDetailssVo.getDiffOtherDiscount().toString()); loanDiffPdfVo.setSj8(loanDiffDetailssVo.getRealityOtherDiscount() == null ? "0" : loanDiffDetailssVo.getRealityOtherDiscount().toString());
loanDiffPdfVo.setCe9(loanDiffDetailssVo.getDiffOtherDiscount().toString()); loanDiffPdfVo.setCe9(loanDiffDetailssVo.getDiffOtherDiscount() == null ? "0" : loanDiffDetailssVo.getDiffOtherDiscount().toString());
loanDiffPdfVo.setYj10(loanDiffDetailssVo.getMakeLoanMargin().toString()); loanDiffPdfVo.setGd1(loanDiffDetailssVo.getMakeLoanMargin() == null ? "0" : loanDiffDetailssVo.getMakeLoanMargin().toString());
loanDiffPdfVo.setSj11(loanDiffDetailssVo.getRealityLoanMargin().toString()); loanDiffPdfVo.setGd2(loanDiffDetailssVo.getRealityLoanMargin() == null ? "0" : loanDiffDetailssVo.getRealityLoanMargin().toString());
loanDiffPdfVo.setCe12(loanDiffDetailssVo.getDiffLoanMargin().toString()); loanDiffPdfVo.setGd3(loanDiffDetailssVo.getDiffLoanMargin() == null ? "0" : loanDiffDetailssVo.getDiffLoanMargin().toString());
loanDiffPdfVo.setYs13(loanDiffDetailssVo.getReceivedPremium().toString()); loanDiffPdfVo.setYw1(loanDiffDetailssVo.getReceivedPremium() == null ? "0" : loanDiffDetailssVo.getReceivedPremium().toString());
loanDiffPdfVo.setSj14(loanDiffDetailssVo.getRealityPremium().toString()); loanDiffPdfVo.setYw2(loanDiffDetailssVo.getRealityPremium() == null ? "0" : loanDiffDetailssVo.getRealityPremium().toString());
loanDiffPdfVo.setCe15(loanDiffDetailssVo.getDiffPremium().toString()); loanDiffPdfVo.setYw3(loanDiffDetailssVo.getDiffPremium() == null ? "0" : loanDiffDetailssVo.getDiffPremium().toString());
loanDiffPdfVos.add(loanDiffPdfVo); loanDiffPdfVos.add(loanDiffPdfVo);
} }
dataMap.put("wlList", loanDiffPdfVos); dataMap.put("wlList", loanDiffPdfVos);
dataMap.put("remarks", data.getRemarks()); dataMap.put("zf", data.getLoanDiffDetails().get(0).getBankName());
dataMap.put("dkr", data.getLoanDiffDetails().get(0).getBorrowName());
dataMap.put("bz", data.getRemarks());
//获取审批记录 //获取审批记录
List<PCHistTaskListAndCommentList> flowRecordVo = flowableFeignSp.flowRecordAndComment(loanDiff.getProcInstId(), "1").getData(); List<PCHistTaskListAndCommentList> flowRecordVo = flowableFeignSp.flowRecordAndComment(loanDiff.getProcInstId(), "1").getData();
List<FinPaymentrecordSourceLCVo> finPaymentrecordSourceLCVos = new ArrayList<>(); List<FinPaymentrecordSourceLCVo> finPaymentrecordSourceLCVos = new ArrayList<>();
@ -966,7 +964,7 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
String typeName = dateStr + seconds + ".doc"; String typeName = dateStr + seconds + ".doc";
// 生成文件路径 // 生成文件路径
String targetPath = sourcePath + dateStr; String targetPath = sourcePath + dateStr;
WordUtils.creatWord(dataMap, "fkqr", sourcePath, targetPath, typeName); WordUtils.creatWord(dataMap, "fkce", sourcePath, targetPath, typeName);
//新生成的word路径 //新生成的word路径
String wordPath = targetPath + "\\" + typeName; String wordPath = targetPath + "\\" + typeName;
//生成出门证文件名 //生成出门证文件名

7
anrui-scm/anrui-scm-ui/src/api/supplychain/purchasereturntowarehouse.js

@ -21,6 +21,13 @@ export default {
params: data params: data
}) })
}, },
createPdf: function(data) {
return request({
url: '/scm/v1/scmvehiclereturn/createPdf',
method: 'post',
params: data
})
},
// 新增、修改保存数据 // 新增、修改保存数据
save: function(data) { save: function(data) {
return request({ return request({

10
anrui-scm/anrui-scm-ui/src/api/supplychain/tiaozhangshenqing.js

@ -20,6 +20,14 @@ export function delBySids(data) {
}) })
} }
export function createPdf(data) {
return request({
url: '/base/v1/baseaccadjapply/createPdf',
method: 'post',
params: data
})
}
// 保存 // 保存
export function save(data) { export function save(data) {
return request({ return request({
@ -34,7 +42,7 @@ export function save(data) {
export function fetchDetailsBySid(data) { export function fetchDetailsBySid(data) {
return request({ return request({
url: '/base/v1/baseaccadjapply/fetchDetailsBySid/' + data, url: '/base/v1/baseaccadjapply/fetchDetailsBySid/' + data,
method: 'get', method: 'get'
}) })
} }

35
anrui-scm/anrui-scm-ui/src/views/supplychain/caigoutuiku/caigoutuiku.vue

@ -35,11 +35,11 @@
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/> <el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/> <el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="150" label="操作" align="center"> <el-table-column width="180" label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true" type="primary" size="small" @click="tohandle(scope.row)">办理 <el-button :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true" type="primary" size="mini" @click="tohandle(scope.row)">办理</el-button>
</el-button> <el-button type="primary" size="mini" v-if="scope.row.nodeState =='已办结'" @click="toDownload(scope.row)">下载</el-button>
<el-button type="primary" size="small" @click="toInfo(scope.row)">查看</el-button> <el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" header-align="center"> <el-table-column label="状态" header-align="center">
@ -83,6 +83,7 @@ import divAdd from './caigoutuikuAdd'
import divInfo from './caigoutuikuInfo' import divInfo from './caigoutuikuInfo'
import { getStorage } from '@/utils/auth' import { getStorage } from '@/utils/auth'
import { selectHaveMessage } from '@/api/cheliang/dictcommons' import { selectHaveMessage } from '@/api/cheliang/dictcommons'
import {createPdf} from "@/api/supplychain/tiaozhangshenqing";
export default { export default {
name: 'caigoutuiku', name: 'caigoutuiku',
@ -222,6 +223,32 @@ export default {
const sid = row.sid const sid = row.sid
this.$refs['divadd'].showEdit(sid) this.$refs['divadd'].showEdit(sid)
}, },
toDownload(row) {
req.createPdf({ sid: row.sid, userName: window.sessionStorage.getItem('name') }).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()
}
}).catch(() => {})
},
toInfo(row) { toInfo(row) {
this.viewState = 4 this.viewState = 4
console.log('这是打开详情接口', row) console.log('这是打开详情接口', row)

38
anrui-scm/anrui-scm-ui/src/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanli.vue

@ -48,11 +48,11 @@
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" fixed type="selection" align="center"/> <el-table-column width="50px" fixed type="selection" align="center"/>
<el-table-column width="80px" fixed label="序号" type="index" :index="indexMethod" align="center"/> <el-table-column width="80px" fixed label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" fixed align="center" width="160px" class-name="small-padding fixed-width"> <el-table-column label="操作" fixed align="center" width="180" class-name="small-padding fixed-width">
<template slot-scope="{row}"><!-- v-show="row.showInspectedBtn" --> <template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="row.nodeState == '待提交' ? false:row.nodeState == '调账申请'?false : true" @click="handleEdit(row)">办理 <el-button size="mini" type="primary" :disabled="scope.row.nodeState == '待提交' ? false: scope.row.nodeState == '调账申请' ? false : true" @click="handleEdit(scope.row)">办理</el-button>
</el-button> <el-button type="primary" size="mini" v-if="scope.row.nodeState =='已办结'" @click="toDownload(scope.row)">下载</el-button>
<el-button size="mini" type="primary" @click="handleCheck(row)">查看</el-button> <el-button size="mini" type="primary" @click="handleCheck(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="140px" prop="nodeState" label="状态" align="left" header-align="center"> <el-table-column width="140px" prop="nodeState" label="状态" align="left" header-align="center">
@ -92,7 +92,7 @@ import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import tiaozhangshenqingguanliAdd from '@/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanliAdd' import tiaozhangshenqingguanliAdd from '@/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanliAdd'
import tiaozhangshenqingguanliInfo from '@/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanliInfo' import tiaozhangshenqingguanliInfo from '@/views/supplychain/tiaozhangshenqingguanli/tiaozhangshenqingguanliInfo'
import { listPage, delBySids } from '@/api/supplychain/tiaozhangshenqing.js' import { listPage, delBySids, createPdf } from '@/api/supplychain/tiaozhangshenqing.js'
import { getOrgSidByPath, getListOrg, typeValues, selectHaveMessage } from '@/api/cheliang/dictcommons' import { getOrgSidByPath, getListOrg, typeValues, selectHaveMessage } from '@/api/cheliang/dictcommons'
import { getStorage } from '@/utils/auth' import { getStorage } from '@/utils/auth'
@ -260,6 +260,32 @@ export default {
this.viewState = 2 this.viewState = 2
this.$refs['divadd'].showEdit(row) this.$refs['divadd'].showEdit(row)
}, },
toDownload(row) {
createPdf({ sid: row.sid, userName: window.sessionStorage.getItem('name') }).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()
}
}).catch(() => {})
},
handleCheck(row) { handleCheck(row) {
this.$refs['divinfo'].showInfo(row) this.$refs['divinfo'].showInfo(row)
console.log('详情回显', row) console.log('详情回显', row)

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryAlloSelectList.java

@ -44,6 +44,10 @@ public class WmsInventoryAlloSelectList {
private String warehouseRackSid; private String warehouseRackSid;
//库位编码 //库位编码
private String warehouseRackCode; private String warehouseRackCode;
//区域sid
private String warehouseZoneSid;
//区域名称
private String warehouseZoneName;
//库存数量 //库存数量
private String count; private String count;
//入库单价 //入库单价

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml

@ -287,12 +287,16 @@
wi.warehouseRackSid, wi.warehouseRackSid,
wi.warehouseRackCode, wi.warehouseRackCode,
wi.count, wi.count,
wi.cost AS taxPrice wi.cost AS taxPrice,
wz.sid AS warehouseZoneSid,
wz.zoneName AS warehouseZoneName
FROM wms_inventory wi FROM wms_inventory wi
LEFT JOIN wms_warehouse_rack wr LEFT JOIN wms_warehouse_rack wr
ON wi.warehouseRackSid = wr.sid ON wi.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area wa LEFT JOIN wms_warehouse_area wa
ON wr.locationSid = wa.sid ON wr.locationSid = wa.sid
LEFT JOIN wms_warehouse_zone wz
ON wz.warehouseSid = wi.warehouseSid
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebill/WmsInventoryAllocateBillQueryNew.java

@ -1,13 +1,9 @@
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill; package com.yxt.wms.biz.inventory.wmsinventoryallocatebill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.query.Query; import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* @author wangpengfei * @author wangpengfei
* @date 2024/2/26 13:37 * @date 2024/2/26 13:37

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebilldetail/WmsInventoryAllocateBillDetail.java

@ -1,12 +1,9 @@
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilldetail; package com.yxt.wms.biz.inventory.wmsinventoryallocatebilldetail;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity; import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @author wangpengfei * @author wangpengfei

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryallocatebilldetail/WmsInventoryAllocateBillDetailDtoNew.java

@ -53,6 +53,10 @@ public class WmsInventoryAllocateBillDetailDtoNew implements Dto {
private String warehouseRackSid; private String warehouseRackSid;
@ApiModelProperty("库位编码") @ApiModelProperty("库位编码")
private String warehouseRackCode; private String warehouseRackCode;
@ApiModelProperty("区域sid")
private String warehouseZoneSid;
@ApiModelProperty("区域名称")
private String warehouseZoneName;
@ApiModelProperty("库存数量") @ApiModelProperty("库存数量")
private BigDecimal stockCount; private BigDecimal stockCount;
@ApiModelProperty("成本价") @ApiModelProperty("成本价")

22
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailGoodPageListQuery.java

@ -25,25 +25,11 @@
*********************************************************/ *********************************************************/
package com.yxt.wms.biz.inventory.wmsinventorycheckbilldetail; package com.yxt.wms.biz.inventory.wmsinventorycheckbilldetail;
import com.yxt.common.core.query.Query; import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data @Data
@ApiModel(value = "库存盘点-明细 视图数据详情", description = "库存盘点-明细 视图数据详情") @ApiModel(value = "库存盘点-明细 视图数据详情", description = "库存盘点-明细 视图数据详情")
public class WmsInventoryCheckbillDetailGoodPageListQuery implements Query { public class WmsInventoryCheckbillDetailGoodPageListQuery implements Query {
@ -51,11 +37,13 @@ public class WmsInventoryCheckbillDetailGoodPageListQuery implements Query {
@ApiModelProperty("盘点sid") @ApiModelProperty("盘点sid")
private String billSid; private String billSid;
@ApiModelProperty("仓库sid") @ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid private String warehouseSid;
@ApiModelProperty("库区sid") @ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid private String warehouseAreaSid;
@ApiModelProperty("库位sid") @ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid private String warehouseRackSid;
@ApiModelProperty("区域sid")
private String warehouseZoneSid;
@ApiModelProperty("商品ID") @ApiModelProperty("商品ID")
private String goodsID; // 商品ID private String goodsID; // 商品ID
@ApiModelProperty("商品名称") @ApiModelProperty("商品名称")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailGoodPageListVo.java

@ -66,6 +66,8 @@ public class WmsInventoryCheckbillDetailGoodPageListVo implements Vo {
private String warehouseArea; private String warehouseArea;
@ApiModelProperty("库位名称") @ApiModelProperty("库位名称")
private String warehouseRackName; private String warehouseRackName;
@ApiModelProperty("区域名称")
private String warehouseZoneName;
@ApiModelProperty("单位") @ApiModelProperty("单位")
private String unit; private String unit;
@ApiModelProperty("成本单价") @ApiModelProperty("成本单价")

46
工作内容需要的文档/单据模板/价值客户备案模板/价值客户备案.docx

@ -0,0 +1,46 @@
价值客户备案审批
分公司:
${orgName!}
创建部门:
${deptName!} 
创建人:
${createName!}
创建日期:
${createTime!}
办结日期:
${finishTime!} 
审批编号:
${billNo!}
销售合同编号
${hth!}
车型
${model!} 
车架号
${vinNo!}
单台加装配置金额/单台销售让利金额
${je!}
合计金额
${hj!}
单台应收手续费
${yssxf!} 
单台实收手续费
${sssxf!} 
单台手续费差额
${ce!} 
应收手续费合计
${yssxfhj!} 
实收手续费合计
${sssxfhj!} 
手续费差额合计
${cehj!} 
备注
${remarks!} 
流程审批
${lc.comment!}
${lc.name!}
${lc.spsj!}
下载人:
${downName!}
下载时间:
${downTime!}

71
工作内容需要的文档/单据模板/放款差额模板/放款差额.docx

@ -0,0 +1,71 @@
放款差额确认申请
分公司:
${orgName!}
创建部门:
${deptName!}
创建人:
${createName!}
创建日期:
${createTime!}
办结日期:
${finishTime!}
审批编号:
${billNo!}
备注
${remarks!}
序号
资方
贷款人
车架号
放款金额
主产品厂家贴息
其他融厂家贴息
固定贷款保证金
意外险
应放
实放
差额
预计
实际
差额
预计
实际
差额
预计
实际
差额
已收
实际
差额
${wl.id!}
${wl.zf!}
${wl.dkr!}
${wl.vinNo!}
${wl.yf1!}
${wl.sf2!}
${wl.ce3!}
${wl.yj4!}
${wl.sj5!}
${wl.ce6!}
${wl.yj7!}
${wl.sj8!}
${wl.ce9!}
${wl.yj10!}
${wl.sj11!}
${wl.ce12!}
${wl.ys13!}
${wl.sj14!}
${wl.ce15!}
审批流程
${lc.name!}
${lc.comment!}
${lc.spsj}
下载人:
${downName!}
下载时间:
${downTime!}

55
工作内容需要的文档/单据模板/销售退车模板/销售退车.docx

@ -0,0 +1,55 @@
销售订单退车审批
分公司:
${orgName!} 
创建部门:
${deptName!} 
创建人:
${createName!}
创建日期:
${createTime!} 
办结日期:
${finishTime!} 
审批编号:
${billNo!} 
合同编号
${contractNo!}
客户名称
${customer!}
销售类型
${saleType!}
车型
${model!}
台数
${num!}
成交价(元)
${price!}
收款情况
${skqk!}
终止原因
${zzyy!}
备注
${remarks!}
车辆列表
序号
车架号
颜色
合格证状态
开票状态
投保状态
库存状态
${wl.id!}
${wl.vinNo!}
${wl.color!}
${wl.hgzState!}
${wl.kpState!}
${wl.tbState!}
${wl.kcState!}
审批流程
${lc.comment!}
${lc.name!}
${lc.spsj!}
下载人:
${downName!}
下载时间:
${downTime!}
Loading…
Cancel
Save