Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 3 years ago
parent
commit
357722ba58
  1. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java
  2. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  3. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  4. 11
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  5. 19
      anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/contractfile.js
  6. 21
      anrui-buscenter/anrui-buscenter-ui/src/router/index.js
  7. 142
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheInfo.vue
  8. 227
      anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue
  9. 25
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java

@ -261,4 +261,6 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
IPage<BaseVehicleReturnVo> vehicleReturnPageList(IPage<BaseVehicleReturnVo> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehicle> qw);
ResultBean updateByVinNo(@Param("vinNoList") List<String> stringList, @Param("vehicleState") String vehicleState, @Param("vehicleStateValue") String vehicleStateValue);
List<Boolean> selectStateByVinNo(@Param("vinNoList") List<String> vinNoList);
}

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -588,4 +588,12 @@
#{vinNo}
</foreach>
</update>
<select id="selectStateByVinNo" resultType="java.lang.Boolean">
select if(vehicleState = '0006','true','false')
from base_vehicle where vinNo in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")">
#{vinNo}
</foreach>
</select>
</mapper>

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java

@ -310,7 +310,7 @@ public class BaseVehicleRest implements BaseVehicleFeign {
@Override
public ResultBean<Boolean> selectStateByVinNo(List<String> vinNoList) {
return null;
return baseVehicleService.selectStateByVinNo(vinNoList);
}
/**

11
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -975,4 +975,15 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
String vehicleStateValue = baseVehicleUpdateQuery.getVihicleStateValue();
return baseMapper.updateByVinNo(stringList, vehicleState, vehicleStateValue);
}
public ResultBean<Boolean> selectStateByVinNo(List<String> vinNoList) {
ResultBean<Boolean> resultBean = ResultBean.fireFail();
boolean isTrue = false;
//查询车架号数组中是否有采购退库状态的车辆,若有则返回true,没有返回false
List<Boolean> booleanList = baseMapper.selectStateByVinNo(vinNoList);
if (booleanList.contains(true)) {
isTrue = true;
}
return resultBean.success().setData(isTrue);
}
}

19
anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/contractfile.js

@ -0,0 +1,19 @@
import request from "@/utils/request";
// import qs from "qs";
// ----------------------------------- 合同档案管理
// 列表查询接口
export function getPageList(data) {
return request({
url: '/base/v1/commoncontract/listPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 编辑回显
export function getOneContract(data) {
return request({
url: '/base/v1/commoncontract/fetchSid/' + data,
method: 'get'
})
}

21
anrui-buscenter/anrui-buscenter-ui/src/router/index.js

@ -390,7 +390,7 @@ export const constantRoutes = [{
import('@/views/hetongguanli/hetongdanganguanli/hetongdanganguanli.vue'),
name: 'hetongdanganguanli',
meta: {
title: '合同档案管理'
title: '合同审核管理'
}
},
{
@ -411,6 +411,15 @@ export const constantRoutes = [{
title: '合同档案管理详情'
}
},
{
path: '/hetongguanli/hetongshenheguanli',
component: () =>
import('@/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue'),
name: 'HeTongDangAnGuanLi',
meta: {
title: '合同档案管理'
}
},
// 模板
{
path: '/hetongguanli/hetongmobanguanli',
@ -486,35 +495,35 @@ export const constantRoutes = [{
import('@/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyudingInfo.vue'),
name: 'cheliangyudingInfo',
},
//特殊审批
//欠款提车申请详情
{
path: '/teshushenpiFlow/qiankuanticheguanli/qiankuanticheInfo',
component: ()=>
import('@/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheInfo.vue'),
name: 'qiankuanticheInfo',
name: 'qiankuanticheInfo',
},
//欠款提车编辑
{
path: '/teshushenpiFlow/qiankuanticheguanli/qiankuanticheEdit',
component: ()=>
import('@/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuanticheEdit.vue'),
name: 'qiankuanticheEdit',
name: 'qiankuanticheEdit',
},
//欠款提车复核
{
path: '/teshushenpiFlow/qiankuanticheguanli/qiankuantichefuhe',
component: ()=>
import('@/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuantichefuhe.vue'),
name: 'qiankuantichefuhe',
name: 'qiankuantichefuhe',
},
//欠款提车复核详情
{
path: '/teshushenpiFlow/qiankuanticheguanli/qiankuantichefuheInfo',
component: ()=>
import('@/views/workflow/teshushenpiFlow/qiankuanticheguanli/qiankuantichefuheInfo.vue'),
name: 'qiankuantichefuheInfo',
name: 'qiankuantichefuheInfo',
},
//合同管理

142
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheInfo.vue

@ -0,0 +1,142 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>合同档案详情</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" label-width="190px" class="formadd" :disabled="edit">
<div class="titwu">{{ temp.contractType }}合同</div>
<el-row class="bordertopline">
<el-col :span="12">
<el-form-item prop="name">
<span slot="label">合同编号</span>
<el-input v-model="temp.contractNo" class="addinputw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="name">
<span slot="label">经办人</span>
<el-input v-model="temp.staffName" class="addinputw" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item>
<span slot="label">甲方名称</span>
<el-input v-model="temp.partyA" class="addinputw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<span slot="label">乙方名称</span>
<el-input v-model="temp.partyB" class="addinputw" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item>
<span slot="label">车型</span>
<el-input v-model="temp.modelName" class="addinputw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="name">
<span slot="label">台数</span>
<el-input v-model="temp.num" class="addinputw" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item prop="name">
<span slot="label">单价</span>
<el-input v-model="temp.price" class="addinputw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="name">
<span slot="label">合同金额</span>
<el-input v-model="temp.contractAmount" class="addinputw" />
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 10px;color: #ffffff">新车买卖合同</div>
</div>
<el-row>
<el-col :span="24">
<img v-for="(item,index) in temp.commonAppendixVos" @click="magnifyImg(item)" class="imgcontent" :key="index" :src="item">
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 10px;color: #ffffff">合同现场签署照片</div>
</div>
<el-row>
<el-col :span="24">
<img v-for="(map_item,index) in temp.sceneSignUrlList" @click="magnifyImg(map_item)" class="imgcontent" :key="index" :src="map_item">
</el-col>
</el-row>
</el-form>
</div>
<el-dialog :visible.sync="dialogVisiblePhoto" append-to-body>
<img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
</div>
</template>
<script>
import { getOneContract } from '@/api/jichuxinxi/contractfile'
export default {
name: 'HetongdanganguanliAdd',
data() {
return {
dialogVisiblePhoto: false,
dialogImageUrl: '',
disabled: false,
temp: {},
edit:true,
}
},
methods: {
//
showInfo(row) {
console.log(row)
getOneContract(row.sid).then((res) => {
if (res.code == '200') {
this.temp = res.data
console.log(res.data)
}
})
},
magnifyImg(val) {
this.dialogVisiblePhoto = true
this.dialogImageUrl = val
},
//
handleReturn() {
this.$emit('doBack')
}
}
}
</script>
<style scoped>
.tableStyle {
margin-top: 0px;
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
background-color: #018ad2;
}
.imgcontent {
width: 100px;
height: 100px;
margin-left: 5px
}
</style>

227
anrui-buscenter/anrui-buscenter-ui/src/views/hetongguanli/hetongshenheguanli/hetongshenheguanli.vue

@ -0,0 +1,227 @@
<template>
<div class="app-container">
<div v-show="viewState==1">
<div class="tab-header webtop">
<div>合同模板管理</div>
<div>
<el-button type="info" size="small">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-row>
<el-form-item label="合同类型" class="searchlist">
<el-select v-model="listQuery.params.contractType" placeholder="请选择" class="filter-item">
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="合同编号" class="searchlist">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="签订日期" class="searchlist">
<el-date-picker v-model="listQuery.params.createDateStart" class="filter-item" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
<label></label>
<el-date-picker v-model="listQuery.params.createDateEnd" class="filter-item" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
</el-form-item>
<el-form-item label="甲方名称" class="searchlist">
<el-input v-model="listQuery.params.partyA" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="乙方名称" class="searchlist">
<el-input v-model="listQuery.params.partyB" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handleReset">重置</el-button>
</div>
</el-form>
</div>
</div>
<div class="listtop">
<div class="tit">合同模板列表</div>
<pageye v-show="list.length>0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="合同编号" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="lookDetails(scope.row)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="甲方名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.partyA }}</span>
</template>
</el-table-column>
<el-table-column label="乙方名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.partyB }}</span>
</template>
</el-table-column>
<el-table-column label="合同金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.contractAmount }}</span>
</template>
</el-table-column>
<el-table-column label="经办人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.staffName }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length>0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<hetongshenhe-info v-show="viewState == 2" ref="divInfo" @doBack="resetState"/>
</div>
</template>
<script>
import { getPageList } from '@/api/jichuxinxi/contractfile'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import { dictType } from '@/api/salesManagement/orderManagement'
import hetongshenheInfo from '@/views/hetongguanli/hetongshenheguanli/hetongshenheInfo'
export default {
name: 'HeTongDangAnGuanLi',
components: {
Pagination,
pageye,
hetongshenheInfo
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
// -----------
tableKey: 0,
viewState: 1,
list: [],
typeList: [],
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
contractNo: '',
contractTypeKey: '',
createDateEnd: '',
createDateStart: '',
partyA: '',
partyB: ''
},
total: 0
}
}
},
created() {
//
this.getList()
this.getType()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
getType() {
dictType({
type: 'contractType',
}).then((response) => {
if (response.code === '200' && response.data) {
this.typeList = response.data
}
})
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
getPageList(this.listQuery).then((response) => {
this.listLoading = false
if (response.code === '200' && response.data && response.data.total > 0) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 20,
params: {
contractNo: '',
contractTypeKey: '',
createDateEnd: '',
createDateStart: '',
partyA: '',
partyB: ''
},
total: 0
}
this.getList()
},
lookDetails(row) {
this.viewState = 2
this.$refs['divInfo'].showInfo(row)
},
resetState() {
this.viewState = 1
this.getList()
}
}
}
</script>
<style scoped>
.filter-item {
padding: 0 10px;
width: 220px;
display: inline-block;
}
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.pagination {
margin-bottom: -10px;
}
</style>

25
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

@ -96,14 +96,14 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
}
} else {
//编辑
//验证数据是否可更改
if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
ScmVehicleReturn scmVehicleReturn = fetchBySid(sid);
if (scmVehicleReturn == null) {
return rb.setMsg("该申请不存在");
}
//验证数据是否可更改
if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
if (scmVehicleReturnDto.getDetailsList().size() == 0) {
return rb.setMsg("请选择需要退库的车辆");
}
@ -191,6 +191,17 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto);
if (resultBean.getSuccess()) {
String businessSid = resultBean.getData().toString();
//判断车辆的状态是否包含采购退库的状态,如果是的话,返回审核失败
ResultBean<List<String>> vinNoList1 = scmVehicleReturnDetailsService.selectVinNoList(businessSid);
if (vinNoList1.getSuccess() && vinNoList1.getData() != null && vinNoList1.getData().size() != 0) {
//查询车架号数组中是否有采购退库状态的车辆,若有则返回true,没有返回false
ResultBean<Boolean> stringResultBean = baseVehicleFeign.selectStateByVinNo(vinNoList1.getData());
if (stringResultBean.getSuccess()) {
if (stringResultBean.getData()) {
return rb.setMsg("该申请中包含车辆状态已是采购退库状态的车辆");
}
}
}
Map<String, Object> variables = new HashMap<>();
variables.put("businessSid", businessSid);
if (Integer.parseInt(scmVehicleReturnDto.getMoney()) > 0) {
@ -263,6 +274,12 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
if (vinNoList1.getSuccess() && vinNoList1.getData() != null && vinNoList1.getData().size() != 0) {
//查询车架号数组中是否有采购退库状态的车辆,若有则返回true,没有返回false
ResultBean<Boolean> stringResultBean = baseVehicleFeign.selectStateByVinNo(vinNoList1.getData());
if (stringResultBean.getSuccess()) {
if (stringResultBean.getData()) {
return rb.setMsg("该申请中包含车辆状态已是采购退库状态的车辆");
}
}
}

Loading…
Cancel
Save