Commit 756f552c authored by 耿迪迪's avatar 耿迪迪

交易项目导出查询-驳回

parent eff7a09d
......@@ -11,9 +11,12 @@ import com.zehong.common.enums.BusinessType;
import com.zehong.common.utils.StringUtils;
import com.zehong.common.utils.poi.ExcelUtil;
import com.zehong.system.domain.TTradeProject;
import com.zehong.system.domain.vo.TTradeProjectExportVo;
import com.zehong.system.service.ITTradeProjectService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
......@@ -24,8 +27,10 @@ import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
......@@ -69,9 +74,15 @@ public class TTradeProjectController extends BaseController
@GetMapping("/export")
public AjaxResult export(TTradeProject tTradeProject)
{
List<TTradeProject> list = tTradeProjectService.selectTTradeProjectList(tTradeProject);
ExcelUtil<TTradeProject> util = new ExcelUtil<TTradeProject>(TTradeProject.class);
return util.exportExcel(list, "交易项目数据");
startPage();
List<TTradeProject> list = tTradeProjectService.selectTTradeProjectListByRoles(tTradeProject);
List<TTradeProjectExportVo> listVo = list.stream().map(item ->{
TTradeProjectExportVo vo = new TTradeProjectExportVo();
BeanUtils.copyProperties(item,vo);
return vo;
}).collect(Collectors.toList());
ExcelUtil<TTradeProjectExportVo> util = new ExcelUtil<>(TTradeProjectExportVo.class);
return util.exportExcel(listVo, "交易项目数据");
}
/**
......
......@@ -118,6 +118,12 @@ public class TTradeProject extends BaseEntity
private String transactionDetailName;
private String relationTransactionProjectName;
private Date createBeginTime;
private Date createEndTime;
public String getDealRemark() {
return dealRemark;
}
......@@ -402,6 +408,30 @@ public class TTradeProject extends BaseEntity
this.transactionDetailName = transactionDetailName;
}
public String getRelationTransactionProjectName() {
return relationTransactionProjectName;
}
public void setRelationTransactionProjectName(String relationTransactionProjectName) {
this.relationTransactionProjectName = relationTransactionProjectName;
}
public Date getCreateBeginTime() {
return createBeginTime;
}
public void setCreateBeginTime(Date createBeginTime) {
this.createBeginTime = createBeginTime;
}
public Date getCreateEndTime() {
return createEndTime;
}
public void setCreateEndTime(Date createEndTime) {
this.createEndTime = createEndTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......
package com.zehong.system.domain.vo;
import com.zehong.common.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
public class TTradeProjectExportVo {
@Excel(name = "交易项目")
private String relationTransactionProjectName;
@Excel(name = "交易细项名称")
private String transactionDetailName;
@Excel(name ="交易状态")
private String tradeStatus;
@Excel(name = "卖方")
private String applyDeptName;
@Excel(name = "申请人")
private String applyName;
/** 创建时间 */
@Excel(name = "申请时间",dateFormat="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@Excel(name = "申报总价")
private BigDecimal tradeTotal;
@Excel(name = "买方")
private String tradeDeptName;
@Excel(name = "买方经办人")
private String tradeTransactorName;
@Excel(name = "评分")
private Integer tradeScore;
@Excel(name = "交易成交价")
private BigDecimal dealPrice;
@Excel(name = "尾款")
private BigDecimal pendingPayment;
public String getRelationTransactionProjectName() {
return relationTransactionProjectName;
}
public void setRelationTransactionProjectName(String relationTransactionProjectName) {
this.relationTransactionProjectName = relationTransactionProjectName;
}
public String getTransactionDetailName() {
return transactionDetailName;
}
public void setTransactionDetailName(String transactionDetailName) {
this.transactionDetailName = transactionDetailName;
}
public String getTradeStatus() {
return tradeStatus;
}
public void setTradeStatus(String tradeStatus) {
this.tradeStatus = getTradeStatusName(tradeStatus);
}
public String getApplyDeptName() {
return applyDeptName;
}
public void setApplyDeptName(String applyDeptName) {
this.applyDeptName = applyDeptName;
}
public String getApplyName() {
return applyName;
}
public void setApplyName(String applyName) {
this.applyName = applyName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public BigDecimal getTradeTotal() {
return tradeTotal;
}
public void setTradeTotal(BigDecimal tradeTotal) {
this.tradeTotal = tradeTotal;
}
public String getTradeDeptName() {
return tradeDeptName;
}
public void setTradeDeptName(String tradeDeptName) {
this.tradeDeptName = tradeDeptName;
}
public String getTradeTransactorName() {
return tradeTransactorName;
}
public void setTradeTransactorName(String tradeTransactorName) {
this.tradeTransactorName = tradeTransactorName;
}
public Integer getTradeScore() {
return tradeScore;
}
public void setTradeScore(Integer tradeScore) {
this.tradeScore = tradeScore;
}
public BigDecimal getDealPrice() {
return dealPrice;
}
public void setDealPrice(BigDecimal dealPrice) {
this.dealPrice = dealPrice != null ? dealPrice.setScale(2,BigDecimal.ROUND_HALF_UP) : dealPrice;
}
public BigDecimal getPendingPayment() {
return pendingPayment;
}
public void setPendingPayment(BigDecimal pendingPayment) {
this.pendingPayment = pendingPayment != null ? pendingPayment.setScale(2,BigDecimal.ROUND_HALF_UP) : pendingPayment;
}
private String getTradeStatusName(String tradeStatus){
switch (tradeStatus){
case "0":
return "待买方经办人评价";
case "1":
return "待买方部门长确认";
case "2":
return "待卖方部门长确认";
case "3":
return "完成";
case "4":
return "驳回";
case "5":
return "待支付";
default:
return "";
}
}
}
......@@ -37,96 +37,101 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="tradeDeptName" column="trade_dept_name"/>
<result property="tradeDeptManagerName" column="trade_dept_manager_name"/>
<result property="applyDeptManagerName" column="apply_dept_manager_name"/>
<result property="relationTransactionProjectName" column="relation_transaction_project_name"/>
</resultMap>
<sql id="selectTTradeProjectVo">
SELECT
trade_id,
receipt_num,
relation_transaction_project_id,
transaction_detail_name,
apply_id,
apply_dept_id,
apply_dept_manager_id,
trade_transactor,
trade_dept_id,
trade_price,
trade_count,
ROUND(trade_total,2) AS trade_total,
trade_score,
trade_dept_manager_id,
settlement_time,
deal_price,
pending_payment,
attachment_url,
trade_status,
create_time,
update_time,
is_del,
remark,
deal_remark,
(SELECT nick_name FROM sys_user WHERE user_id = trade_transactor) AS trade_transactor_name,
(SELECT nick_name FROM sys_user WHERE user_id = apply_id) AS apply_name,
(SELECT dept_name FROM sys_dept WHERE dept_id = apply_dept_id) AS apply_dept_name,
(SELECT dept_name FROM sys_dept WHERE dept_id = trade_dept_id) AS trade_dept_name,
(SELECT nick_name FROM sys_user WHERE user_id = trade_dept_manager_id) AS trade_dept_manager_name,
(SELECT nick_name FROM sys_user WHERE user_id = apply_dept_manager_id)AS apply_dept_manager_name
trade.trade_id,
trade.receipt_num,
trade.relation_transaction_project_id,
trade.transaction_detail_name,
trade.apply_id,
trade.apply_dept_id,
trade.apply_dept_manager_id,
trade.trade_transactor,
trade.trade_dept_id,
trade.trade_price,
trade.trade_count,
ROUND(trade.trade_total,2) AS trade_total,
trade.trade_score,
trade.trade_dept_manager_id,
trade.settlement_time,
trade.deal_price,
trade.pending_payment,
trade.attachment_url,
trade.trade_status,
trade.create_time,
trade.update_time,
trade.is_del,
trade.remark,
trade.deal_remark,
project.transaction_project_name AS relation_transaction_project_name,
(SELECT nick_name FROM sys_user WHERE user_id = trade.trade_transactor) AS trade_transactor_name,
(SELECT nick_name FROM sys_user WHERE user_id = trade.apply_id) AS apply_name,
(SELECT dept_name FROM sys_dept WHERE dept_id = trade.apply_dept_id) AS apply_dept_name,
(SELECT dept_name FROM sys_dept WHERE dept_id = trade.trade_dept_id) AS trade_dept_name,
(SELECT nick_name FROM sys_user WHERE user_id = trade.trade_dept_manager_id) AS trade_dept_manager_name,
(SELECT nick_name FROM sys_user WHERE user_id = trade.apply_dept_manager_id)AS apply_dept_manager_name
FROM
t_trade_project
t_trade_project trade
LEFT JOIN t_transaction_project project ON project.transaction_project_id = trade.relation_transaction_project_id
</sql>
<select id="selectTTradeProjectList" parameterType="TTradeProject" resultMap="TTradeProjectResult">
<include refid="selectTTradeProjectVo"/>
<where>
<if test="receiptNum != null and receiptNum != ''"> and receipt_num = #{receiptNum}</if>
<if test="relationTransactionProjectId != null "> and relation_transaction_project_id = #{relationTransactionProjectId}</if>
<if test="receiptNum != null and receiptNum != ''"> and trade.receipt_num = #{receiptNum}</if>
<if test="relationTransactionProjectId != null "> and trade.relation_transaction_project_id = #{relationTransactionProjectId}</if>
<if test="queryType != 'all'">
<if test="applyId != null"> and apply_id = #{applyId}</if>
<if test="applyDeptId != null"> and apply_dept_id = #{applyDeptId}</if>
<if test="tradeTransactor != null"> and trade_transactor = #{tradeTransactor}</if>
<if test="tradeDeptId != null"> and trade_dept_id = #{tradeDeptId}</if>
<if test="applyId != null"> and trade.apply_id = #{applyId}</if>
<if test="applyDeptId != null"> and trade.apply_dept_id = #{applyDeptId}</if>
<if test="tradeTransactor != null"> and trade.trade_transactor = #{tradeTransactor}</if>
<if test="tradeDeptId != null"> and trade.trade_dept_id = #{tradeDeptId}</if>
</if>
<!-- add by lizhichao 0612 -->
<!-- 当同时拥有部门长及经办人角色时 -->
<if test="queryType == 'all' and applyDeptId != null and tradeTransactor == null">
and (
(apply_dept_id = #{applyDeptId}
<if test="applyId != null"> and apply_id = #{applyId}</if>)
or(trade_dept_id = #{tradeDeptId}
<if test="tradeTransactor != null"> and trade_transactor = #{tradeTransactor}</if>)
(trade.apply_dept_id = #{applyDeptId}
<if test="applyId != null"> and trade.apply_id = #{applyId}</if>)
or(trade.trade_dept_id = #{tradeDeptId}
<if test="tradeTransactor != null"> and trade.trade_transactor = #{tradeTransactor}</if>)
)
</if>
<if test="queryType == 'all' and applyDeptId != null and tradeTransactor != null">
and (
(apply_dept_id = #{applyDeptId}
<if test="applyId != null"> and apply_id = #{applyId}</if>)
or(trade_dept_id = #{tradeDeptId}
<if test="tradeTransactor != null"> and trade_transactor = #{tradeTransactor}</if>)
(trade.apply_dept_id = #{applyDeptId}
<if test="applyId != null"> and trade.apply_id = #{applyId}</if>)
or(trade.trade_dept_id = #{tradeDeptId}
<if test="tradeTransactor != null"> and trade.trade_transactor = #{tradeTransactor}</if>)
)
</if>
<if test="applyDeptManagerId != null "> and apply_dept_manager_id = #{applyDeptManagerId}</if>
<if test="tradePrice != null "> and trade_price = #{tradePrice}</if>
<if test="tradeCount != null "> and trade_count = #{tradeCount}</if>
<if test="tradeTotal != null "> and trade_total = #{tradeTotal}</if>
<if test="tradeScore != null "> and trade_score = #{tradeScore}</if>
<if test="tradeDeptManagerId != null "> and trade_dept_manager_id = #{tradeDeptManagerId}</if>
<if test="settlementTime != null "> and settlement_time = #{settlementTime}</if>
<if test="dealPrice != null "> and deal_price = #{dealPrice}</if>
<if test="pendingPayment != null "> and pending_payment = #{pendingPayment}</if>
<if test="attachmentUrl != null and attachmentUrl != ''"> and attachment_url = #{attachmentUrl}</if>
<if test="tradeStatus != null and tradeStatus != ''"> and trade_status = #{tradeStatus}</if>
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
<if test="queryApplyDeptId != null">and apply_dept_id = #{queryApplyDeptId}</if>
<if test="queryTradeDeptId != null">and trade_dept_id = #{queryTradeDeptId}</if>
<if test="transactionDetailName != null">and transaction_detail_name like concat('%', #{transactionDetailName}, '%')</if>
<if test="applyDeptManagerId != null "> and trade.apply_dept_manager_id = #{applyDeptManagerId}</if>
<if test="tradePrice != null "> and trade.trade_price = #{tradePrice}</if>
<if test="tradeCount != null "> and trade.trade_count = #{tradeCount}</if>
<if test="tradeTotal != null "> and trade.trade_total = #{tradeTotal}</if>
<if test="tradeScore != null "> and trade.trade_score = #{tradeScore}</if>
<if test="tradeDeptManagerId != null "> and trade.trade_dept_manager_id = #{tradeDeptManagerId}</if>
<if test="settlementTime != null "> and trade.settlement_time = #{settlementTime}</if>
<if test="dealPrice != null "> and trade.deal_price = #{dealPrice}</if>
<if test="pendingPayment != null "> and trade.pending_payment = #{pendingPayment}</if>
<if test="attachmentUrl != null and attachmentUrl != ''"> and trade.attachment_url = #{attachmentUrl}</if>
<if test="tradeStatus != null and tradeStatus != ''"> and trade.trade_status = #{tradeStatus}</if>
<if test="isDel != null and isDel != ''"> and trade.is_del = #{isDel}</if>
<if test="queryApplyDeptId != null">and trade.apply_dept_id = #{queryApplyDeptId}</if>
<if test="queryTradeDeptId != null">and trade.trade_dept_id = #{queryTradeDeptId}</if>
<if test="transactionDetailName != null">and trade.transaction_detail_name like concat('%', #{transactionDetailName}, '%')</if>
<if test="relationTransactionProjectName != null">and project.transaction_project_name like concat('%', #{relationTransactionProjectName}, '%')</if>
<if test="createBeginTime != null and createEndTime != null">and trade.create_time between #{createBeginTime} and #{createEndTime}</if>
</where>
order by create_time desc
</select>
<select id="selectTTradeProjectById" parameterType="Long" resultMap="TTradeProjectResult">
<include refid="selectTTradeProjectVo"/>
where trade_id = #{tradeId}
where trade.trade_id = #{tradeId}
</select>
<insert id="insertTTradeProject" parameterType="TTradeProject" useGeneratedKeys="true" keyProperty="tradeId">
......@@ -226,10 +231,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getTradePendingPaymentInfo" parameterType="Long" resultMap="TTradeProjectResult">
<include refid="selectTTradeProjectVo"/>
t_trade_project
WHERE trade_dept_id = #{tradeDeptId}
AND trade_status = '3'
AND pending_payment > 0
WHERE trade.trade_dept_id = #{tradeDeptId}
AND trade.trade_status = '3'
AND trade.pending_payment > 0
</select>
<select id="getIncomeOrPayableList" parameterType="TTradeProject" resultMap="TTradeProjectResult">
SELECT
......
......@@ -5,6 +5,7 @@
<component :is="currentTabComponent" :tradeData="tradeData" ref="currentCom" v-if="open"></component>
<div slot="footer" class="dialog-footer" style="text-align: center" v-if="operatorName != 'tradeDetail'">
<el-button style="width: 150px;border-color: #1890ff;color: #1890ff;" @click="resetSuggestion">重置意见</el-button>
<el-button type="primary" style="width: 150px" v-if="operatorName == 'evaluate'" @click="reject">驳回</el-button>
<el-button type="primary" style="width: 150px" @click="submitSuggestion">提交</el-button>
</div>
</el-dialog>
......@@ -107,7 +108,6 @@
}
)
.then(() => {
console.log("7778444-------------------")
settlePendingPayment({tradeId:this.tradeInfo.tradeId}).then(res =>{
if(res.code == 200){
this.$emit("getList");
......@@ -172,6 +172,19 @@
that.$message.error("提交失败!");
}
})
},
//驳回
reject(){
updateProject({tradeId:this.tradeInfo.tradeId,tradeStatus:"4"}).then(res =>{
if(res.code == 200){
this.open = false;
this.$emit("getList");
this.$message.success("驳回成功!");
sendNotice({noticeTitle:"您有新交易项目被驳回",noticeType:"1",noticeContent:"您有新交易项目被驳回",userId:this.tradeInfo.applyId,relationType:"1",relationId:this.tradeInfo.tradeId})
}else{
this.$message.error("驳回失败!");
}
})
}
}
}
......
......@@ -13,6 +13,7 @@
align="center"
prop="transactionDetailName"
:show-overflow-tooltip="true"
width="100px"
>
<template slot-scope="scope">
<span v-if="scope.row.transactionDetailName">{{scope.row.transactionDetailName}}</span>
......
......@@ -8,6 +8,17 @@
v-show="showSearch"
label-width="100px"
>
<el-form-item label="交易项目" prop="relationTransactionProjectName">
<el-input
v-model="queryParams.relationTransactionProjectName"
placeholder="请输入交易项目"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交易细项名称" prop="transactionDetailName">
<!--<el-select
v-model="queryParams.relationTransactionProjectId"
......@@ -67,15 +78,22 @@
/>
</div>
</el-form-item>
<!--
<el-form-item label="发起时间" prop="createTime">
<el-form-item label="申请时间">
<el-date-picker
v-model="queryParams.createTime"
type="datetime"
placeholder="选择日期"
v-model="applyTime"
size="small"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="timeChange"
style="width: 340px"
>
</el-date-picker>
</el-form-item>-->
</el-form-item>
<el-form-item>
<el-button
......@@ -91,8 +109,8 @@
</el-form-item>
</el-form>
<!--<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-row :gutter="10" class="mb8">
<!--<el-col :span="1.5">
<el-button
type="primary"
plain
......@@ -123,7 +141,7 @@
@click="handleDelete"
v-hasPermi="['system:project:remove']"
>删除</el-button>
</el-col>
</el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
......@@ -132,11 +150,11 @@
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['system:project:export']"
v-hasPermi="['trade:project:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>-->
<!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row>
<el-card class="box-card">
<div class="outer-div">
......@@ -400,7 +418,10 @@ export default {
tradeStatus: null,
createTime: null,
queryApplyDeptId: null,
queryTradeDeptId: null
queryTradeDeptId: null,
relationTransactionProjectName: null,
createBeginTime: null,
createEndTime: null
},
// 表单参数
form: {},
......@@ -438,7 +459,8 @@ export default {
tab: "0",
transactionOptions: [],
transactorList: [],
count: 0
count: 0,
applyTime: []
};
},
created() {
......@@ -515,6 +537,9 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.createBeginTime = null;
this.queryParams.createEndTime = null;
this.applyTime = [];
this.handleQuery();
},
// 多选框选中数据
......@@ -611,7 +636,8 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
const queryParams = {...this.queryParams};
queryParams.pageSize = 1000;
this.$confirm("是否确认导出所有交易项目数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
......@@ -773,6 +799,13 @@ export default {
);
}
},
//时间切换
timeChange(value){
if(value){
this.queryParams.createBeginTime = value[0];
this.queryParams.createEndTime = value[1];
}
},
},
};
</script>
......
......@@ -8,6 +8,17 @@
v-show="showSearch"
label-width="100px"
>
<el-form-item label="交易项目" prop="relationTransactionProjectName">
<el-input
v-model="queryParams.relationTransactionProjectName"
placeholder="请输入交易项目"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交易细项名称" prop="transactionDetailName">
<el-input
......@@ -52,6 +63,21 @@
</div>
</el-form-item>
<el-form-item label="申请时间">
<el-date-picker
v-model="applyTime"
size="small"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="timeChange"
style="width: 340px"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type="primary"
......@@ -169,13 +195,17 @@
tradeStatus: null,
createTime: null,
queryApplyDeptId: null,
queryTradeDeptId: null
queryTradeDeptId: null,
relationTransactionProjectName: null,
createBeginTime: null,
createEndTime: null
},
// 总条数
total: 0,
deptOptions: [],
// 显示搜索条件
showSearch: true,
applyTime: []
}
},
created(){
......@@ -195,6 +225,9 @@
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.createBeginTime = null;
this.queryParams.createEndTime = null;
this.applyTime = [];
this.handleQuery();
},
/** 查询交易项目列表 */
......@@ -237,6 +270,13 @@
this.deptOptions = response.data;
});
},
//时间切换
timeChange(value){
if(value){
this.queryParams.createBeginTime = value[0];
this.queryParams.createEndTime = value[1];
}
},
}
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment