Jelajahi Sumber

其他业务设置

qzyReal 3 tahun lalu
induk
melakukan
b9689c4ddb

+ 1 - 1
sp-admin/sa-frame/menu-list.js

@@ -363,7 +363,7 @@ var menuList = [{
 		childList: [{
 				id: 'tb-item-type-list',
 				name: '收费项管理',
-				url: 'sa-view/tb-item-type/tb-item-type-list.html',
+				url: 'sa-view/tb-goods/tb-goods-list.html',
 				childList: [{
 						id: 'tb-item-type-add',
 						name: '添加收费项',

+ 39 - 130
sp-admin/sa-view/relation-goods-type/relation-goods-type-list.html

@@ -3,7 +3,8 @@
 	<head>
 		<title>业务类型与作业项-列表</title>
 		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
 		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
@@ -18,64 +19,46 @@
 		<div class="vue-box" style="display: none;" :style="'display: block;'">
 			<div class="c-panel">
 				<!-- ------------- 检索参数 ------------- -->
-				<div class="c-title">检索参数</div>
-				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="text" name="业务类型" v-model="p.goodsName"></sa-item>
-					<sa-item type="text" name="业务名称" v-model="p.typeName"></sa-item>
-					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
-					<br />
-				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
-					<el-button v-if="sa.isAuth('relation-goods-type-add')" size="mini" type="primary" @click="add()">
+					<el-button size="mini" type="primary" @click="add()">
 						新增</el-button>
-					<el-button size="mini" type="success" @click="getBySelect()">查看</el-button>
 					<el-button size="mini" type="info" @click="sa.f5()">重置</el-button>
 				</div>
 				<!-- ------------- 数据列表 ------------- -->
-				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="selection"></sa-td>
-					<sa-td name="作业类型" prop="goodsName" ></sa-td>
-					<sa-td name="类型名称" prop="typeName" ></sa-td>
-					<sa-td name="载重是否必填" prop="needWeight" type="switch" :jv="{1: '是', 0: '否'}" @change="s => updateNeedWeight(s.row)"></sa-td>
-					<sa-td name="规格是否必填" prop="needCarSize" type="switch" :jv="{1: '是', 0: '否'}" @change="s => updateNeedCarSize(s.row)"></sa-td>
-					<sa-td name="申报单是否必填" prop="needDeclare" type="switch" :jv="{1: '是', 0: '否'}" @change="s => updateNeedDeclare(s.row)"></sa-td>
-					<sa-td name="申报时间是否必填" prop="needOperateTime" type="switch" :jv="{1: '是', 0: '否'}" @change="s => updateNeedOperateTime(s.row)"></sa-td>
-					<sa-td name="是否必选" prop="needSelect" type="switch" :jv="{1: '是', 0: '否'}" @change="s => updateNeedSelect(s.row)"></sa-td>
-					<el-table-column label="操作" fixed="right"  width="240px">
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<el-table-column type="index" width="50">
+					</el-table-column>
+					<sa-td name="业务名称" prop="goodsName"></sa-td>
+					<sa-td name="业务类型" prop="typeName"></sa-td>
+					<sa-td name="下拉必选" prop="needSelect" type="switch" :jv="{0: '可选[#e5e5e5]', 1: '必选[#005500]'}"
+						@change="s => updateNeedSelect(s.row)"></sa-td>
+					<el-table-column label="操作" fixed="right">
 						<template slot-scope="s">
-							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>
-							<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
+							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">移除
+							</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
 				<!-- ------------- 分页 ------------- -->
-				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">
+				</sa-item>
 			</div>
 		</div>
 		<script>
 			var app = new Vue({
 				components: {
-					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
-					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
 				},
 				el: '.vue-box',
 				data: {
 					p: { // 查询参数  
-						id: '',		//  
-						goodsId: '',		//  
-						goodsName: '',		// 作业类型 
-						typeId: '',		//  
-						typeName: '',		// 类型名称 
-						needWeight: '',		// 载重是否必填(1=是,0=否) 
-						needCarSize: '',		// 规格是否必填(1=是,0=否) 
-						needDeclare: '',		// 申报单是否必填(1=是,0=否) 
-						needOperateTime: '',		// 申报时间是否必填(1=是,0=否) 
-						needSelect: '',		// 是否必选(1=是,0=否) 
-						pageNo: 1,		// 当前页 
-						pageSize: 10,	// 页大小 
-						sortType: 0		// 排序方式 
+						id: '', //  
+						goodsId: sa.p('goodsId', '-1'), //  
+						pageNo: 1, // 当前页 
+						pageSize: 10, // 页大小 
+						sortType: 0 // 排序方式 
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合 
@@ -86,7 +69,7 @@
 						sa.ajax('/RelationGoodsType/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
-							sa.f5TableHeight();		// 刷新表格高度 
+							sa.f5TableHeight(); // 刷新表格高度 
 						}.bind(this));
 					},
 					// 查看
@@ -96,7 +79,7 @@
 					// 查看 - 根据选中的
 					getBySelect: function(data) {
 						var selection = this.$refs['data-table'].selection;
-						if(selection.length == 0) {
+						if (selection.length == 0) {
 							return sa.msg('请选择一条数据')
 						}
 						this.get(selection[0]);
@@ -107,112 +90,38 @@
 					},
 					// 新增
 					add: function(data) {
-						sa.showIframe('新增数据', 'relation-goods-type-add.html?id=-1', '1000px', '90%');
+						let list = this.dataList;
+						let idStr = list.map(obj => obj.typeId).join(',');
+					
+						sa.showIframe('新增数据', 'tb-item-type-select.html?goodsId=' + this.p.goodsId +'&idStr='+idStr ,
+							'1000px', '90%');
 					},
 					// 删除
 					del: function(data) {
-						sa.confirm('是否删除,此操作不可撤销', function() {
+						sa.confirm('是否移除关联?,此操作不可撤销', function() {
 							sa.ajax('/RelationGoodsType/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
-							}.bind(this))
-						}.bind(this));
-					},
-					// 批量删除
-					deleteByIds: function() {
-						// 获取选中元素的id列表 
-						let selection = this.$refs['data-table'].selection;
-						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
-							return sa.msg('请至少选择一条数据')
-						}
-						// 提交删除 
-						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/RelationGoodsType/deleteByIds', {ids: ids.join(',')}, function(res) {
-								sa.arrayDelete(this.dataList, selection);
-								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
+								sa.ok('已移除关联');
+								sa.f5TableHeight(); // 刷新表格高度 
 							}.bind(this))
 						}.bind(this));
 					},
-					// 改 - 载重是否必填(1=是,0=否)
-					updateNeedWeight: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.needWeight;
-						var ajax = sa.ajax('/RelationGoodsType/updateNeedWeight', {id: data.id, value: data.needWeight}, function(res) {
-							isOk = true;
-							sa.msg('修改成功');
-						}.bind(this));
-						// 如果未能修改成功, 则回滚 
-						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
-							}
-						})
-					},
-					// 改 - 规格是否必填(1=是,0=否)
-					updateNeedCarSize: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.needCarSize;
-						var ajax = sa.ajax('/RelationGoodsType/updateNeedCarSize', {id: data.id, value: data.needCarSize}, function(res) {
-							isOk = true;
-							sa.msg('修改成功');
-						}.bind(this));
-						// 如果未能修改成功, 则回滚 
-						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
-							}
-						})
-					},
-					// 改 - 申报单是否必填(1=是,0=否)
-					updateNeedDeclare: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.needDeclare;
-						var ajax = sa.ajax('/RelationGoodsType/updateNeedDeclare', {id: data.id, value: data.needDeclare}, function(res) {
-							isOk = true;
-							sa.msg('修改成功');
-						}.bind(this));
-						// 如果未能修改成功, 则回滚 
-						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
-							}
-						})
-					},
-					// 改 - 申报时间是否必填(1=是,0=否)
-					updateNeedOperateTime: function(data) {
-						// 声明变量记录是否成功 
-						var isOk = false;	
-						var oldValue = data.needOperateTime;
-						var ajax = sa.ajax('/RelationGoodsType/updateNeedOperateTime', {id: data.id, value: data.needOperateTime}, function(res) {
-							isOk = true;
-							sa.msg('修改成功');
-						}.bind(this));
-						// 如果未能修改成功, 则回滚 
-						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
-							}
-						})
-					},
 					// 改 - 是否必选(1=是,0=否)
 					updateNeedSelect: function(data) {
 						// 声明变量记录是否成功 
-						var isOk = false;	
+						var isOk = false;
 						var oldValue = data.needSelect;
-						var ajax = sa.ajax('/RelationGoodsType/updateNeedSelect', {id: data.id, value: data.needSelect}, function(res) {
+						var ajax = sa.ajax('/RelationGoodsType/updateNeedSelect', {
+							id: data.id,
+							value: data.needSelect
+						}, function(res) {
 							isOk = true;
 							sa.msg('修改成功');
 						}.bind(this));
 						// 如果未能修改成功, 则回滚 
 						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
+							if (isOk == false) {
+								data.status = oldValue;
 							}
 						})
 					},

+ 120 - 0
sp-admin/sa-view/relation-goods-type/tb-item-type-select.html

@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>作业配置项-列表</title>
+		<meta charset="utf-8">
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<div class="c-title">检索参数</div>
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="项目名称" v-model="p.name"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<sa-item type="fast-btn" show="reset" style="display: inline;"></sa-item>
+					<el-button  type="primary" icon="el-icon-plus" @click="selectBatch()">确定
+					</el-button>
+					<br />
+				</el-form>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td type="selection"></sa-td>
+					<sa-td name="项目名称" prop="name" ></sa-td>
+					<sa-td name="付款步骤" prop="payStep" type="enum" :jv="{1: '下单后', 2: '确认后'}"></sa-td>
+					<sa-td name="排序" prop="sort"></sa-td>
+					<el-table-column label="操作" fixed="right">
+						<template slot-scope="s">
+							<el-button  class="c-btn" type="primary" icon="el-icon-edit" @click="selectOne(s.row)">选择
+							</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">
+				</sa-item>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
+				},
+				el: '.vue-box',
+				data: {
+					ids:sa.p('idStr',''),
+					goodsId:sa.p('goodsId',''),
+					p: { // 查询参数  
+						id: '', // 主键
+						name: '', // 项目名称 
+						business: 0,
+						pageNo: 1, // 当前页 
+						pageSize: 20, // 页大小 
+						sortType: 0 // 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合
+				},
+				methods: {
+					// 新增
+					selectBatch: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if (selection.length == 0) {
+							return sa.msg('至少选择一条数据')
+						}
+						let obj={
+							goodsId:this.goodsId,
+							typeIds: selection.map(obj => obj.id).join(',')
+						}
+						sa.ajax('/RelationGoodsType/add', obj, function(res) {
+							sa.alert('添加成功');
+							setTimeout(() => {
+								sa.closeCurrIframe(); // 关闭本页 
+								parent.app.f5(); // 刷新父页面列表
+							}, 1000)
+						}.bind(this));
+					},
+					// 删除
+					selectOne: function(data) {
+						
+					},
+					// 刷新
+					f5: function() {
+						sa.ajax('/TbItemType/getList', sa.removeNull(this.p), function(res) {
+							let list = res.data;
+							this.dataList = list; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							let ids = this.ids.split(',');
+							list.forEach(row => {
+								console.log(ids.indexOf(row.id) !== -1)
+								if (ids.indexOf(row.id) !== -1) {
+									this.$nextTick(() => {
+										this.$refs['data-table'].toggleRowSelection(row,
+											true)
+									})
+								}
+							})
+							sa.f5TableHeight(); // 刷新表格高度 
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 3 - 5
sp-admin/sa-view/tb-goods/tb-goods-add.html

@@ -26,9 +26,8 @@
                     <div class="c-title" v-if="id == 0">数据添加</div>
 					<div class="c-title" v-else>数据修改</div>
 					<el-form v-if="m">
-						<sa-item type="text" name="名称" v-model="m.name" br></sa-item>
-						<sa-item type="text" name="编号" v-model="m.code" br></sa-item>
-						<sa-item type="enum" name="状态" v-model="m.status" :jv="{1: '禁用', 2: '启用'}" jtype="3" br></sa-item>
+						<sa-item type="text" name="业务名称" v-model="m.name" br></sa-item>
+						<!-- <sa-item type="enum" name="状态" v-model="m.status" :jv="{1: '禁用', 2: '启用'}" jtype="3" br></sa-item> -->
 						<sa-item name="" class="s-ok" br>
 							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
 						</sa-item>
@@ -60,7 +59,7 @@
 							code: '',		// 编号 
 							name: '',		// 名称 
 							status: '2',		// 状态(1=禁用,2=启用) 
-							createTime: '',		// 创建时间 
+							businessType: 1,		// 创建时间 
 						}
 					},
 					// 提交数据 
@@ -68,7 +67,6 @@
 						// 表单校验 
 						let m = this.m;
 						sa.checkNull(m.name, '请输入 [名称]');
-						sa.checkNull(m.code, '请输入 [编号]');
 						// 开始增加或修改
 						if(this.id <= 0) {	// 添加
 							sa.ajax('/TbGoods/add', m, function(res){

+ 133 - 39
sp-admin/sa-view/tb-goods/tb-goods-list.html

@@ -3,7 +3,8 @@
 	<head>
 		<title>商品管理-列表</title>
 		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
 		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
@@ -20,59 +21,71 @@
 				<!-- ------------- 检索参数 ------------- -->
 				<div class="c-title">检索参数</div>
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<sa-item type="text" name="编号" v-model="p.code"></sa-item>
 					<sa-item type="text" name="名称" v-model="p.name"></sa-item>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button type="info" icon="el-icon-search" @click="p.name = ''; f5()">重置</el-button>
+					<el-button  size="mini" type="primary" @click="add()">增加</el-button>
 					<br />
 				</el-form>
-				<!-- ------------- 快捷按钮 ------------- -->
-				<sa-item type="fast-btn" show="add,delete,reset"></sa-item>
+			
 				<!-- ------------- 数据列表 ------------- -->
-				<el-table class="data-table" ref="data-table" :data="dataList" >
-					<sa-td type="selection"></sa-td>
-					<sa-td name="编号" prop="code" ></sa-td>
-					<sa-td name="名称" prop="name" ></sa-td>
-					<sa-td name="状态" prop="status" type="switch" :jv="{1: '否[#ff0000]', 2: '是[#005500]'}" @change="s => updateStatus(s.row)"></sa-td>
-					<sa-td name="创建时间" prop="createTime" ></sa-td>
-					<el-table-column label="操作" fixed="right"  width="240px">
-						<template slot-scope="s">
-							<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改</el-button>
-							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除</el-button>
-						</template>
-					</el-table-column>
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					   <el-table-column type="index" width="50">
+					   </el-table-column>
+						<sa-td name="业务名称" prop="name"></sa-td>
+						<sa-td name="载重" prop="needWeight" type="switch" :jv="{0: '非必填[#e5e5e5]', 1: '必填[#005500]'}"
+							@change="s => updateNeedWeight(s.row)"></sa-td>
+						<sa-td name="规格" prop="needCarSize" type="switch" :jv="{0: '非必填[#e5e5e5]', 1: '必填[#005500]'}"
+							@change="s => updateNeedCarSize(s.row)"></sa-td>
+						<sa-td name="申报单" prop="needDeclare" type="switch" :jv="{0: '非必填[#e5e5e5]', 1: '必填[#005500]'}"
+							@change="s => updateNeedDeclare(s.row)"></sa-td>
+						<sa-td name="作业时间" prop="needOperateTime" type="switch" :jv="{0: '非必填[#e5e5e5]', 1: '必填[#005500]'}"
+							@change="s => updateNeedOperateTime(s.row)"></sa-td>
+						<sa-td name="创建时间" prop="createTime"></sa-td>
+						<el-table-column label="操作" fixed="right" width="230">
+							<template slot-scope="s">
+								<el-button class="c-btn" type="primary" @click="businessFn(s.row)">收费类型
+								</el-button>
+								<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改
+								</el-button>
+								<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除
+								</el-button>
+							</template>
+						</el-table-column>
 				</el-table>
 				<!-- ------------- 分页 ------------- -->
-				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()"></sa-item>
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">
+				</sa-item>
 			</div>
 		</div>
 		<script>
 			var app = new Vue({
 				components: {
-					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),  
-					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),		
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
 				},
 				el: '.vue-box',
 				data: {
 					p: { // 查询参数  
-						id: '',		// 主键 
-						code: '',		// 编号 
-						name: '',		// 名称 
-						status: '',		// 状态(1=禁用,2=启用) 
-						createTime: '',		// 创建时间 
-						pageNo: 1,		// 当前页 
-						pageSize: 10,	// 页大小 
-						sortType: 0		// 排序方式 
+						businessType: 1, // 编号 
+						name: '', // 名称 
+						pageNo: 1, // 当前页 
+						pageSize: 10, // 页大小 
+						sortType: 0 // 排序方式 
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合 
 				},
 				methods: {
+					businessFn(data){
+						sa.showIframe('数据详情', '../relation-goods-type/relation-goods-type-list.html?goodsId=' + data.id, '1080px', '90%');
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/TbGoods/getList', sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
-							sa.f5TableHeight();		// 刷新表格高度 
+							sa.f5TableHeight(); // 刷新表格高度 
 						}.bind(this));
 					},
 					// 查看
@@ -82,18 +95,18 @@
 					// 查看 - 根据选中的
 					getBySelect: function(data) {
 						var selection = this.$refs['data-table'].selection;
-						if(selection.length == 0) {
+						if (selection.length == 0) {
 							return sa.msg('请选择一条数据')
 						}
 						this.get(selection[0]);
 					},
 					// 修改
 					update: function(data) {
-						sa.showIframe('修改数据', 'tb-goods-add.html?id=' + data.id, '1000px', '90%');
+						sa.showIframe('修改数据', 'tb-goods-add.html?id=' + data.id, '450px', '30%');
 					},
 					// 新增
 					add: function(data) {
-						sa.showIframe('新增数据', 'tb-goods-add.html?id=-1', '1000px', '90%');
+						sa.showIframe('新增数据', 'tb-goods-add.html?id=-1', '450px', '30%');
 					},
 					// 删除
 					del: function(data) {
@@ -101,7 +114,7 @@
 							sa.ajax('/TbGoods/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
+								sa.f5TableHeight(); // 刷新表格高度 
 							}.bind(this))
 						}.bind(this));
 					},
@@ -110,31 +123,112 @@
 						// 获取选中元素的id列表 
 						let selection = this.$refs['data-table'].selection;
 						let ids = sa.getArrayField(selection, 'id');
-						if(selection.length == 0) {
+						if (selection.length == 0) {
 							return sa.msg('请至少选择一条数据')
 						}
 						// 提交删除 
 						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
-							sa.ajax('/TbGoods/deleteByIds', {ids: ids.join(',')}, function(res) {
+							sa.ajax('/TbGoods/deleteByIds', {
+								ids: ids.join(',')
+							}, function(res) {
 								sa.arrayDelete(this.dataList, selection);
 								sa.ok('删除成功');
-								sa.f5TableHeight();		// 刷新表格高度 
+								sa.f5TableHeight(); // 刷新表格高度 
 							}.bind(this))
 						}.bind(this));
 					},
 					// 改 - 状态(1=禁用,2=启用)
 					updateStatus: function(data) {
 						// 声明变量记录是否成功 
-						var isOk = false;	
+						var isOk = false;
 						var oldValue = data.status;
-						var ajax = sa.ajax('/TbGoods/updateStatus', {id: data.id, value: data.status}, function(res) {
+						var ajax = sa.ajax('/TbGoods/updateStatus', {
+							id: data.id,
+							value: data.status
+						}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚 
+						$.when(ajax).done(function() {
+							if (isOk == false) {
+								data.status = oldValue;
+							}
+						})
+					},
+					// 改 - 载重是否必填(1=是,0=否)
+					updateNeedWeight: function(data) {
+						// 声明变量记录是否成功 
+						var isOk = false;
+						var oldValue = data.needWeight;
+						var ajax = sa.ajax('/TbGoods/updateNeedWeight', {
+							id: data.id,
+							value: data.needWeight
+						}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚 
+						$.when(ajax).done(function() {
+							if (isOk == false) {
+								data.status = oldValue;
+							}
+						})
+					},
+					// 改 - 规格是否必填(1=是,0=否)
+					updateNeedCarSize: function(data) {
+						// 声明变量记录是否成功 
+						var isOk = false;
+						var oldValue = data.needCarSize;
+						var ajax = sa.ajax('/TbGoods/updateNeedCarSize', {
+							id: data.id,
+							value: data.needCarSize
+						}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚 
+						$.when(ajax).done(function() {
+							if (isOk == false) {
+								data.status = oldValue;
+							}
+						})
+					},
+					// 改 - 申报单是否必填(1=是,0=否)
+					updateNeedDeclare: function(data) {
+						// 声明变量记录是否成功 
+						var isOk = false;
+						var oldValue = data.needDeclare;
+						var ajax = sa.ajax('/TbGoods/updateNeedDeclare', {
+							id: data.id,
+							value: data.needDeclare
+						}, function(res) {
+							isOk = true;
+							sa.msg('修改成功');
+						}.bind(this));
+						// 如果未能修改成功, 则回滚 
+						$.when(ajax).done(function() {
+							if (isOk == false) {
+								data.status = oldValue;
+							}
+						})
+					},
+					// 改 - 申报时间是否必填(1=是,0=否)
+					updateNeedOperateTime: function(data) {
+						// 声明变量记录是否成功 
+						var isOk = false;
+						var oldValue = data.needOperateTime;
+						var ajax = sa.ajax('/TbGoods/updateNeedOperateTime', {
+							id: data.id,
+							value: data.needOperateTime
+						}, function(res) {
 							isOk = true;
 							sa.msg('修改成功');
 						}.bind(this));
 						// 如果未能修改成功, 则回滚 
 						$.when(ajax).done(function() {
-							if(isOk == false) {
-								data.status = oldValue; 
+							if (isOk == false) {
+								data.status = oldValue;
 							}
 						})
 					},

+ 2 - 0
sp-admin/sa-view/tb-item-type/tb-item-type-list.html

@@ -60,6 +60,8 @@
 				},
 				el: '.vue-box',
 				data: {
+					idStr:sa.p('idStr',''),
+					goodsId:sa.p('goodsId',''),
 					p: { // 查询参数  
 						id: '', // 主键
 						name: '', // 项目名称 

+ 4 - 25
sp-server/src/main/java/com/pj/project/relation_goods_type/RelationGoodsType.java

@@ -53,38 +53,17 @@ public class RelationGoodsType extends Model<RelationGoodsType> implements Seria
 	/**
 	 *  
 	 */
-	private Long typeId;	
+	private String typeId;
 
 	/**
 	 * 类型名称 
 	 */
-	private String typeName;	
+	private String typeName;
 
 	/**
-	 * 载重是否必填(1=是,0=否) 
+	 * 是否必选(1=是,0=否)
 	 */
-	private String needWeight;	
-
-	/**
-	 * 规格是否必填(1=是,0=否) 
-	 */
-	private String needCarSize;	
-
-	/**
-	 * 申报单是否必填(1=是,0=否) 
-	 */
-	private String needDeclare;	
-
-	/**
-	 * 申报时间是否必填(1=是,0=否) 
-	 */
-	private String needOperateTime;	
-
-	/**
-	 * 是否必选(1=是,0=否) 
-	 */
-	private Integer needSelect;	
-
+	private Integer needSelect;
 
 
 

+ 19 - 61
sp-server/src/main/java/com/pj/project/relation_goods_type/RelationGoodsTypeController.java

@@ -27,26 +27,32 @@ public class RelationGoodsTypeController {
 	RelationGoodsTypeService relationGoodsTypeService;
 
 	/** 增 */  
-	@RequestMapping("add")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
-	@Transactional(rollbackFor = Exception.class)
-	public AjaxJson add(RelationGoodsType r){
-		relationGoodsTypeService.add(r);
-		r = relationGoodsTypeService.getById(SP.publicMapper.getPrimarykey());
-		return AjaxJson.getSuccessData(r);
+	@RequestMapping("saveBatch")
+	public AjaxJson saveBatch(){
+		SoMap so = SoMap.getRequestSoMap();
+		Long goodsId=so.getLong("goodsId");
+		String typeIds=so.getString("typeIds");
+		relationGoodsTypeService.saveBatch(goodsId,typeIds);
+		return AjaxJson.getSuccess();
+	}	/** 增 */
+	@RequestMapping("saveSingle")
+	public AjaxJson saveSingle(){
+		SoMap so = SoMap.getRequestSoMap();
+		String goodsId=so.getString("goodsId");
+		String typeId=so.getString("typeId");
+		relationGoodsTypeService.saveSingle(goodsId,typeId);
+		return AjaxJson.getSuccess();
 	}
 
 	/** 删 */  
 	@RequestMapping("delete")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
 	public AjaxJson delete(Long id){
-		relationGoodsTypeService.delete(id);
+		relationGoodsTypeService.removeById(id);
 		return AjaxJson.getSuccess();
 	}
 	
 	/** 删 - 根据id列表 */  
 	@RequestMapping("deleteByIds")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
 	public AjaxJson deleteByIds(){
 		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
 		int line = SP.publicMapper.deleteByIds(RelationGoodsType.TABLE_NAME, ids);
@@ -57,7 +63,7 @@ public class RelationGoodsTypeController {
 	@RequestMapping("update")
 	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
 	public AjaxJson update(RelationGoodsType r){
-		relationGoodsTypeService.update(r);
+		relationGoodsTypeService.updateById(r);
 		return AjaxJson.getSuccess();
 	}
 
@@ -75,44 +81,10 @@ public class RelationGoodsTypeController {
 		List<RelationGoodsType> list = relationGoodsTypeService.getList(so.startPage());
 		return AjaxJson.getPageData(so.getDataCount(), list);
 	}
-	
-	
-	
-	/** 改 - 载重是否必填(1=是,0=否) */  
-	@RequestMapping("updateNeedWeight")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
-	public AjaxJson updateNeedWeight(Long id, String value){
-		int line = SP.publicMapper.updateColumnById(RelationGoodsType.TABLE_NAME, "need_weight", value, id);
-		return AjaxJson.getByLine(line);
-	}
-	
-	/** 改 - 规格是否必填(1=是,0=否) */  
-	@RequestMapping("updateNeedCarSize")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
-	public AjaxJson updateNeedCarSize(Long id, String value){
-		int line = SP.publicMapper.updateColumnById(RelationGoodsType.TABLE_NAME, "need_car_size", value, id);
-		return AjaxJson.getByLine(line);
-	}
-	
-	/** 改 - 申报单是否必填(1=是,0=否) */  
-	@RequestMapping("updateNeedDeclare")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
-	public AjaxJson updateNeedDeclare(Long id, String value){
-		int line = SP.publicMapper.updateColumnById(RelationGoodsType.TABLE_NAME, "need_declare", value, id);
-		return AjaxJson.getByLine(line);
-	}
-	
-	/** 改 - 申报时间是否必填(1=是,0=否) */  
-	@RequestMapping("updateNeedOperateTime")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
-	public AjaxJson updateNeedOperateTime(Long id, String value){
-		int line = SP.publicMapper.updateColumnById(RelationGoodsType.TABLE_NAME, "need_operate_time", value, id);
-		return AjaxJson.getByLine(line);
-	}
+
 	
 	/** 改 - 是否必选(1=是,0=否) */  
 	@RequestMapping("updateNeedSelect")
-	@SaCheckPermission(RelationGoodsType.PERMISSION_CODE)
 	public AjaxJson updateNeedSelect(Long id, Integer value){
 		int line = SP.publicMapper.updateColumnById(RelationGoodsType.TABLE_NAME, "need_select", value, id);
 		return AjaxJson.getByLine(line);
@@ -121,21 +93,7 @@ public class RelationGoodsTypeController {
 	
 	// ------------------------- 前端接口 -------------------------
 	
-	
-	/** 改 - 不传不改 [G] */
-	@RequestMapping("updateByNotNull")
-	public AjaxJson updateByNotNull(Long id){
-		AjaxError.throwBy(true, "如需正常调用此接口,请删除此行代码");
-		// 鉴别身份,是否为数据创建者 
-		long userId = SP.publicMapper.getColumnByIdToLong(RelationGoodsType.TABLE_NAME, "user_id", id);
-		AjaxError.throwBy(userId != StpUserUtil.getLoginIdAsLong(), "此数据您无权限修改");
-		// 开始修改 (请只保留需要修改的字段)
-		SoMap so = SoMap.getRequestSoMap();
-		so.clearNotIn("id", "goodsId", "goodsName", "typeId", "typeName", "needWeight", "needCarSize", "needDeclare", "needOperateTime", "needSelect").clearNull().humpToLineCase();	
-		int line = SP.publicMapper.updateBySoMapById(RelationGoodsType.TABLE_NAME, so, id);
-		return AjaxJson.getByLine(line);
-	}
-	
+
 	
 	
 	

+ 0 - 8
sp-server/src/main/java/com/pj/project/relation_goods_type/RelationGoodsTypeMapper.xml

@@ -14,10 +14,6 @@
 		<result property="goodsName" column="goods_name" />
 		<result property="typeId" column="type_id" />
 		<result property="typeName" column="type_name" />
-		<result property="needWeight" column="need_weight" />
-		<result property="needCarSize" column="need_car_size" />
-		<result property="needDeclare" column="need_declare" />
-		<result property="needOperateTime" column="need_operate_time" />
 		<result property="needSelect" column="need_select" />
 	</resultMap>
 	
@@ -38,10 +34,6 @@
 			<if test=' this.has("goodsName") '> and goods_name = #{goodsName} </if>
 			<if test=' this.has("typeId") '> and type_id = #{typeId} </if>
 			<if test=' this.has("typeName") '> and type_name = #{typeName} </if>
-			<if test=' this.has("needWeight") '> and need_weight = #{needWeight} </if>
-			<if test=' this.has("needCarSize") '> and need_car_size = #{needCarSize} </if>
-			<if test=' this.has("needDeclare") '> and need_declare = #{needDeclare} </if>
-			<if test=' this.has("needOperateTime") '> and need_operate_time = #{needOperateTime} </if>
 			<if test=' this.has("needSelect") '> and need_select = #{needSelect} </if>
 		</where>
 		order by

+ 78 - 25
sp-server/src/main/java/com/pj/project/relation_goods_type/RelationGoodsTypeService.java

@@ -1,52 +1,105 @@
 package com.pj.project.relation_goods_type;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.project.tb_business.TbBusiness;
 import com.pj.project.tb_business.TbBusinessMapper;
+import com.pj.project.tb_goods.TbGoods;
+import com.pj.project.tb_goods.TbGoodsService;
+import com.pj.project.tb_item_type.TbItemType;
+import com.pj.project.tb_item_type.TbItemTypeService;
+import com.pj.project4sp.global.BusinessException;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.pj.utils.sg.*;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * Service: relation_goods_type -- 业务类型与作业项
- * @author qzy 
+ *
+ * @author qzy
  */
 @Service
+@Transactional(rollbackFor = Exception.class)
 public class RelationGoodsTypeService extends ServiceImpl<RelationGoodsTypeMapper, RelationGoodsType> implements IService<RelationGoodsType> {
 
-	/** 底层 Mapper 对象 */
-	@Autowired
-	RelationGoodsTypeMapper relationGoodsTypeMapper;
+    /**
+     * 底层 Mapper 对象
+     */
+    @Autowired
+    RelationGoodsTypeMapper relationGoodsTypeMapper;
+
+    @Resource
+    private TbGoodsService tbGoodsService;
+
+    @Resource
+    private TbItemTypeService tbItemTypeService;
+
 
-	/** 增 */
-	void add(RelationGoodsType r){
-		this.save(r);
-	}
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    List<RelationGoodsType> getList(SoMap so) {
+        return relationGoodsTypeMapper.getList(so);
+    }
 
-	/** 删 */
-	void delete(Long id){
-		this.removeById(id);
-	}
 
-	/** 改 */
-	void update(RelationGoodsType r){
-		this.updateById(r);
-	}
+    public List<RelationGoodsType> findByGoodsId(Long goodsId) {
+        QueryWrapper<RelationGoodsType> ew = new QueryWrapper<>();
+        ew.eq("goods_id", goodsId);
+        return list(ew);
+    }
 
-	/** 查 */
-	RelationGoodsType getById(Long id){
-		return super.getById(id);
-	}
+    public void saveBatch(Long goodsId, String typeIds) {
+        if (StrUtil.isEmpty(typeIds)) {
+            throw new BusinessException("请选择业务类型");
+        }
+        List<String>newTypeIds=StrUtil.splitTrim(typeIds, ",");
+        List<RelationGoodsType>exitList=this.findByGoodsId(goodsId);
+        List<String>exitTypeIdList=exitList.stream().map(RelationGoodsType::getTypeId).collect(Collectors.toList());
+        exitList.stream().filter(relationGoodsType -> !newTypeIds.contains(relationGoodsType.getTypeId()))
+                .forEach(relationGoodsType -> this.removeById(relationGoodsType.getId()));
+        List<String>list=  newTypeIds.stream().filter(typeId->!exitTypeIdList.contains(typeId)).collect(Collectors.toList());
+        TbGoods tbGoods = tbGoodsService.getById(goodsId);
+        List<TbItemType> tbItemTypes = tbItemTypeService.listByIds(list);
+        tbItemTypes.forEach(tbItemType -> {
+            RelationGoodsType relationGoodsType = new RelationGoodsType();
+            relationGoodsType.setGoodsName(tbGoods.getName())
+                    .setGoodsId(tbGoods.getId())
+                    .setTypeId(tbItemType.getId()).setTypeName(tbItemType.getName())
+                    .setNeedSelect(1);
+            this.save(relationGoodsType);
+        });
+    }
 
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<RelationGoodsType> getList(SoMap so) {
-		return relationGoodsTypeMapper.getList(so);	
-	}
-	
+    public void saveSingle(String goodsId, String typeId) {
+        RelationGoodsType relationGoodsType = this.findByGoodsIdAndTypeId(goodsId, typeId);
+        if (relationGoodsType != null) {
+            throw new BusinessException("已存在关联");
+        }
+        relationGoodsType = new RelationGoodsType();
+        TbItemType tbItemType = tbItemTypeService.getById(typeId);
+        TbGoods tbGoods = tbGoodsService.getById(goodsId);
+        relationGoodsType.setGoodsName(tbGoods.getName())
+                .setGoodsId(tbGoods.getId())
+                .setTypeId(tbItemType.getId()).setTypeName(tbItemType.getName())
+                .setNeedSelect(1);
+        this.save(relationGoodsType);
+    }
 
+    private RelationGoodsType findByGoodsIdAndTypeId(String goodsId, String typeId) {
+        QueryWrapper<RelationGoodsType> ew = new QueryWrapper<>();
+        ew.eq("goods_id", goodsId);
+        ew.eq("type_id", typeId);
+        return getOne(ew);
+    }
 }

+ 27 - 1
sp-server/src/main/java/com/pj/project/tb_goods/TbGoods.java

@@ -63,12 +63,38 @@ public class TbGoods extends Model<TbGoods> implements Serializable {
 	private Date createTime;
 	private String needIds;
 	private String noNeedIds;
+	private Integer businessType=2;
+
+	/**
+	 * 载重是否必填(1=是,0=否)
+	 */
+	private Integer needWeight;
+
+	/**
+	 * 规格是否必填(1=是,0=否)
+	 */
+	private Integer needCarSize;
+
+	/**
+	 * 申报单是否必填(1=是,0=否)
+	 */
+	private Integer needDeclare;
+
+	/**
+	 * 申报时间是否必填(1=是,0=否)
+	 */
+	private Integer needOperateTime;
+
+
+	private Integer chinaCarPay=1;
+	private Integer vietnamCarPay=1;
+
+
 
 
 
 
 
-	
 
 
 }

+ 42 - 34
sp-server/src/main/java/com/pj/project/tb_goods/TbGoodsController.java

@@ -1,7 +1,10 @@
 package com.pj.project.tb_goods;
 
+import java.util.Date;
 import java.util.List;
 
+import com.pj.project.relation_goods_type.RelationGoodsType;
+import com.pj.project.tb_item_type.TbItemType;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -28,37 +31,30 @@ public class TbGoodsController {
 
 	/** 增 */  
 	@RequestMapping("add")
-	@SaCheckPermission(TbGoods.PERMISSION_CODE)
+	@SaCheckPermission(TbItemType.PERMISSION_CODE)
 	@Transactional(rollbackFor = Exception.class)
 	public AjaxJson add(TbGoods t){
-		tbGoodsService.add(t);
-		t = tbGoodsService.getById(SP.publicMapper.getPrimarykey());
+		t.setCreateTime(new Date());
+		tbGoodsService.save(t);
 		return AjaxJson.getSuccessData(t);
 	}
 
 	/** 删 */  
 	@RequestMapping("delete")
-	@SaCheckPermission(TbGoods.PERMISSION_CODE)
+	@SaCheckPermission(TbItemType.PERMISSION_CODE)
 	public AjaxJson delete(Long id){
-		int line = tbGoodsService.delete(id);
-		return AjaxJson.getByLine(line);
+		tbGoodsService.removeById(id);
+		return AjaxJson.getSuccess();
 	}
 	
-	/** 删 - 根据id列表 */  
-	@RequestMapping("deleteByIds")
-	@SaCheckPermission(TbGoods.PERMISSION_CODE)
-	public AjaxJson deleteByIds(){
-		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
-		int line = SP.publicMapper.deleteByIds(TbGoods.TABLE_NAME, ids);
-		return AjaxJson.getByLine(line);
-	}
+
 	
 	/** 改 */  
 	@RequestMapping("update")
-	@SaCheckPermission(TbGoods.PERMISSION_CODE)
+	@SaCheckPermission(TbItemType.PERMISSION_CODE)
 	public AjaxJson update(TbGoods t){
-		int line = tbGoodsService.update(t);
-		return AjaxJson.getByLine(line);
+		tbGoodsService.update(t);
+		return AjaxJson.getSuccess();
 	}
 
 	/** 查 - 根据id */  
@@ -85,25 +81,37 @@ public class TbGoodsController {
 		int line = SP.publicMapper.updateColumnById(TbGoods.TABLE_NAME, "status", value, id);
 		return AjaxJson.getByLine(line);
 	}
-	
-	
-	// ------------------------- 前端接口 -------------------------
-	
-	
-	/** 改 - 不传不改 [G] */
-	@RequestMapping("updateByNotNull")
-	public AjaxJson updateByNotNull(Long id){
-		AjaxError.throwBy(true, "如需正常调用此接口,请删除此行代码");
-		// 鉴别身份,是否为数据创建者 
-		long userId = SP.publicMapper.getColumnByIdToLong(TbGoods.TABLE_NAME, "user_id", id);
-		AjaxError.throwBy(userId != StpUserUtil.getLoginIdAsLong(), "此数据您无权限修改");
-		// 开始修改 (请只保留需要修改的字段)
-		SoMap so = SoMap.getRequestSoMap();
-		so.clearNotIn("id", "code", "name", "status", "createTime").clearNull().humpToLineCase();	
-		int line = SP.publicMapper.updateBySoMapById(TbGoods.TABLE_NAME, so, id);
+
+
+
+
+	/** 改 - 载重是否必填(1=是,0=否) */
+	@RequestMapping("updateNeedWeight")
+	public AjaxJson updateNeedWeight(Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbGoods.TABLE_NAME, "need_weight", value, id);
+		return AjaxJson.getByLine(line);
+	}
+
+	/** 改 - 规格是否必填(1=是,0=否) */
+	@RequestMapping("updateNeedCarSize")
+	public AjaxJson updateNeedCarSize(Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbGoods.TABLE_NAME, "need_car_size", value, id);
+		return AjaxJson.getByLine(line);
+	}
+
+	/** 改 - 申报单是否必填(1=是,0=否) */
+	@RequestMapping("updateNeedDeclare")
+	public AjaxJson updateNeedDeclare(Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbGoods.TABLE_NAME, "need_declare", value, id);
+		return AjaxJson.getByLine(line);
+	}
+
+	/** 改 - 申报时间是否必填(1=是,0=否) */
+	@RequestMapping("updateNeedOperateTime")
+	public AjaxJson updateNeedOperateTime(Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbGoods.TABLE_NAME, "need_operate_time", value, id);
 		return AjaxJson.getByLine(line);
 	}
-	
 	
 	
 	

+ 0 - 27
sp-server/src/main/java/com/pj/project/tb_goods/TbGoodsMapper.java

@@ -17,33 +17,6 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface TbGoodsMapper extends BaseMapper <TbGoods> {
 
-	/**
-	 * 增  
-	 * @param t 实体对象 
-	 * @return 受影响行数 
-	 */
-	int add(TbGoods t);
-
-	/**
-	 * 删  
-	 * @param id 要删除的数据id  
-	 * @return 受影响行数 
-	 */
-	int delete(Long id);	 
-
-	/** 
-	 * 改  
-	 * @param t 实体对象 
-	 * @return 受影响行数 
-	 */
-	int update(TbGoods t);
-
-	/** 
-	 * 查 - 根据id  
-	 * @param id 要查询的数据id 
-	 * @return 实体对象 
-	 */
-	TbGoods getById(Long id);	 
 
 	/**
 	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)

+ 3 - 30
sp-server/src/main/java/com/pj/project/tb_goods/TbGoodsMapper.xml

@@ -2,29 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.pj.project.tb_goods.TbGoodsMapper">
 
-	<!-- 增 [G] -->
-	<insert id="add">
-		insert into 
-		tb_goods (id, code, name, status, create_time) 
-		values (#{id}, #{code}, #{name}, #{status}, now())
-	</insert>
-
-	<!-- 删 -->
-	<delete id="delete">
-		delete from tb_goods 
-		where id = #{id}
-	</delete>
-
-	<!-- 改 [G] -->
-	<update id="update">
-		update tb_goods set
-		id = #{id}, 
-		code = #{code}, 
-		name = #{name}, 
-		status = #{status}, 
-		create_time = #{createTime}
-		where id = #{id}
-	</update>
 
 
 	<!-- ================================== 查询相关 ================================== -->
@@ -44,21 +21,17 @@
 		select *
 		from tb_goods 
 	</sql>
-	
-	<!-- 查 - 根据id -->
-	<select id="getById" resultMap="model">
-		<include refid="select_sql"></include>
-		where id = #{id}
-	</select>
+
 	
 	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
-	<select id="getList" resultMap="model">
+	<select id="getList" resultType="com.pj.project.tb_goods.TbGoods">
 		<include refid="select_sql"></include>
 		<where>
 			<if test=' this.has("id") '> and id = #{id} </if>
 			<if test=' this.has("code") '> and code like concat('%', #{code},'%') </if>
 			<if test=' this.has("name") '> and name  like concat('%', #{name},'%')</if>
 			<if test=' this.has("status") '> and status = #{status} </if>
+			<if test=' this.has("businessType") '> and business_type = #{businessType} </if>
 		</where>
 		order by
 		<choose>

+ 35 - 31
sp-server/src/main/java/com/pj/project/tb_goods/TbGoodsService.java

@@ -5,47 +5,51 @@ import java.util.List;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pj.project.relation_goods_type.RelationGoodsType;
+import com.pj.project.relation_goods_type.RelationGoodsTypeService;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.pj.utils.sg.*;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * Service: tb_goods -- 商品管理
- * @author qzy 
+ *
+ * @author qzy
  */
 @Service
-public class TbGoodsService extends ServiceImpl<TbGoodsMapper,TbGoods> implements IService<TbGoods> {
-
-	/** 底层 Mapper 对象 */
-	@Autowired
-	TbGoodsMapper tbGoodsMapper;
-
-	/** 增 */
-	int add(TbGoods t){
-		return tbGoodsMapper.add(t);
-	}
-
-	/** 删 */
-	int delete(Long id){
-		return tbGoodsMapper.delete(id);
-	}
-
-	/** 改 */
-	int update(TbGoods t){
-		return tbGoodsMapper.update(t);
-	}
-
-	/** 查 */
-	TbGoods getById(Long id){
-		return tbGoodsMapper.getById(id);
-	}
-
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<TbGoods> getList(SoMap so) {
-		return tbGoodsMapper.getList(so);	
-	}
+@Transactional(rollbackFor = Exception.class)
+public class TbGoodsService extends ServiceImpl<TbGoodsMapper, TbGoods> implements IService<TbGoods> {
+
+    /**
+     * 底层 Mapper 对象
+     */
+    @Autowired
+    TbGoodsMapper tbGoodsMapper;
+    @Resource
+    private RelationGoodsTypeService relationGoodsTypeService;
+
+
+    /**
+     * 改
+     */
+    void update(TbGoods t) {
+        super.updateById(t);
+       List<RelationGoodsType>goodsTypes= relationGoodsTypeService.findByGoodsId(t.getId());
+       goodsTypes.forEach(relationGoodsType -> {relationGoodsType.setGoodsName(t.getName());relationGoodsTypeService.updateById(relationGoodsType);});
+    }
+
+
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    List<TbGoods> getList(SoMap so) {
+        return tbGoodsMapper.getList(so);
+    }
 
 
 }