车间工位管理问题修改 12.15

zhc4dev
zhc077 2 years ago
parent c8e920ae25
commit 8d416bbee8
  1. 8
      ant-design-vue-jeecg/src/views/devicetype/ZyDevicetypeListRef.vue
  2. 101
      ant-design-vue-jeecg/src/views/erp/tool/ZyToolListRef.vue
  3. 4
      ant-design-vue-jeecg/src/views/team/modules/GroupxMemberModal.vue
  4. 74
      ant-design-vue-jeecg/src/views/team/modules/GroupxModal.vue
  5. 2
      ant-design-vue-jeecg/src/views/team/modules/StationModal.vue
  6. 25
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/team/controller/GroupxMemberController.java

@ -9,14 +9,8 @@
<!-- </div>--> <!-- </div>-->
<!-- &lt;!&ndash; 查询区域-END &ndash;&gt;--> <!-- &lt;!&ndash; 查询区域-END &ndash;&gt;-->
<!-- &lt;!&ndash; 操作按钮区域 &ndash;&gt;--> <!-- 操作按钮区域 -->
<!-- <div class="table-operator">--> <!-- <div class="table-operator">-->
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('设备类型')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<!-- </div>--> <!-- </div>-->

@ -1,50 +1,41 @@
<template> <template>
<a-card :bordered="false"> <a-card :bordered="false">
<!-- 查询区域 --> <!-- 查询区域 -->
<div class="table-page-search-wrapper"> <!-- <div class="table-page-search-wrapper">-->
<a-form layout="inline" @keyup.enter.native="searchQuery"> <!-- <a-form layout="inline" @keyup.enter.native="searchQuery">-->
<a-row :gutter="24"> <!-- <a-row :gutter="24">-->
</a-row> <!-- </a-row>-->
</a-form> <!-- </a-form>-->
</div> <!-- </div>-->
<!-- 查询区域-END --> <!-- &lt;!&ndash; 查询区域-END &ndash;&gt;-->
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <!-- <div class="table-operator">-->
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>--> <!-- &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('zy_tool')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">--> <!-- </div>-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin --> <!-- table区域-begin -->
<div> <div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a> <a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div> </div>
<a-table <a-table
ref="table" ref="table"
size="middle" size="middle"
:scroll="{x:true}"
bordered bordered
rowKey="id" rowKey="id"
class="j-table-force-nowrap"
:scroll="{x:true}"
:columns="columns" :columns="columns"
:dataSource="dataSource" :dataSource="dataSource"
:pagination="ipagination" :pagination="ipagination"
:loading="loading" :loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap" :customRow="clickThenSelect"
@change="handleTableChange"> @change="handleTableChange">
<!-- <template slot="htmlSlot" slot-scope="text">--> <!-- <template slot="htmlSlot" slot-scope="text">-->
@ -96,15 +87,16 @@
<script> <script>
import '@/assets/less/TableExpand.less' import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin' // import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin' import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ZyToolModal from './modules/ZyToolModal' import {getAction} from "@api/manage";
// import ZyToolModal from './modules/ZyToolModal'
export default { export default {
name: 'ZyToolList', name: 'ZyToolList',
mixins:[JeecgListMixin, mixinDevice], mixins: [JeecgListMixin],
components: { components: {
ZyToolModal // ZyToolModal
}, },
data() { data() {
return { return {
@ -178,7 +170,21 @@
importExcelUrl: "tool/zyTool/importExcel", importExcelUrl: "tool/zyTool/importExcel",
}, },
dictOptions:{}, dictOptions:{
},
/* 分页参数 */
ipagination:{
current: 1,
pageSize: 5,
pageSizeOptions: ['5', '10', '50'],
showTotal: (total, range) => {
return range[0] + "-" + range[1] + " 共" + total + "条"
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
selectedMainId:'',
superFieldList:[], superFieldList:[],
selectedRowKeys: [], selectedRowKeys: [],
} }
@ -192,12 +198,49 @@
}, },
}, },
methods: { methods: {
clickThenSelect(record) {
return {
on: {
click: () => {
this.onSelectChange(record.id.split(","), [record]);
}
}
}
},
onClearSelected() {
this.selectedRowKeys = [];
this.selectionRows = [];
this.selectedMainId=''
},
onSelectChange(selectedRowKeys) { onSelectChange(selectedRowKeys) {
console.log('selectedRowKeys changed: ', selectedRowKeys); console.log('selectedRowKeys changed: ', selectedRowKeys);
this.selectedRowKeys = selectedRowKeys; this.selectedRowKeys = selectedRowKeys;
}, },
initDictConfig() { initDictConfig() {
}, },
loadData(arg) {
if(!this.url.list){
this.$message.error("请设置url.list属性!")
return
}
// 1
if (arg === 1) {
this.ipagination.current = 1;
}
this.onClearSelected()
var params = this.getQueryParams();//
this.loading = true;
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.records;
this.ipagination.total = res.result.total;
}
if(res.code===510){
this.$message.warning(res.message)
}
this.loading = false;
})
},
getSuperFieldList() { getSuperFieldList() {
let fieldList = []; let fieldList = [];
fieldList.push({type: 'string', value: 'name', text: '工具名称'}) fieldList.push({type: 'string', value: 'name', text: '工具名称'})

@ -62,6 +62,7 @@ export default {
}, },
url: { url: {
add: "/groupxMember/add", add: "/groupxMember/add",
addBatch: "/groupxMember/addBatch",
edit: "/groupxMember/edit", edit: "/groupxMember/edit",
} }
, ,
@ -98,14 +99,13 @@ export default {
let httpurl = ''; let httpurl = '';
let method = ''; let method = '';
if (!this.model.id) { if (!this.model.id) {
httpurl += this.url.add; httpurl += this.url.addBatch;
method = 'post'; method = 'post';
} else { } else {
httpurl += this.url.edit; httpurl += this.url.edit;
method = 'put'; method = 'put';
} }
console.log("----------the add() model:", this.model); console.log("----------the add() model:", this.model);
this.model.stationId =
httpAction(httpurl, this.model, method).then((res) => { httpAction(httpurl, this.model, method).then((res) => {
if (res.success) { if (res.success) {
that.$message.success(res.message); that.$message.success(res.message);

@ -22,15 +22,20 @@
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="groupName" label="班组名称"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="groupName" label="班组名称">
<a-input placeholder="请输入班组名称" v-model="model.groupName"/> <a-input placeholder="请输入班组名称" v-model="model.groupName"/>
</a-form-model-item> </a-form-model-item>
<!-- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enterprisesManager" label="负责人">--> <!-- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enterprisesManager" label="负责人">-->
<!-- &lt;!&ndash; <a-input placeholder="请输入负责人" v-model="model.enterprisesManager"/>&ndash;&gt;--> <!-- <j-select-user-by-dep placeholder="请选择负责人" v-model="model.enterprisesManager" :multi="false"-->
<!-- &lt;!&ndash; <j-select-multi-user placeholder="请选择负责人" v-model="model.enterprisesManager" @change="getMobile()"/>&ndash;&gt;--> <!-- @change="getMobile"></j-select-user-by-dep>-->
<!-- <j-select-user-by-dep placeholder="请选择负责人" v-model="model.enterprisesManager" @change="getMobile()"/>--> <!-- {{ model.enterprisesManager }}-->
<!-- </a-form-model-item>--> <!-- </a-form-model-item>-->
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enterprisesManager" label="负责人">
<j-select-user-by-dep placeholder="请选择负责人" v-model="model.enterprisesManager" :multi="false" :value='sex' :back-user="true"></j-select-user-by-dep>
{{ model.enterprisesManager }} <a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol" prop="enterprisesManager" label="班组成员">
<!-- <j-select-user-by-dep v-model="model.userId" :multi="false"></j-select-user-by-dep>-->
<j-select-multi-user placeholder="请选择成员" v-model="model.enterprisesManager" @change="getMobile()" :multiple="false" ></j-select-multi-user>
</a-form-model-item> </a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mobile" label="手机号"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mobile" label="手机号">
<a-input placeholder="请输入手机号" v-model="model.mobile"/> <a-input placeholder="请输入手机号" v-model="model.mobile"/>
<!-- <j-dict-select-tag type="list" v-model="model.mobile" :dictCode="mobileVal"></j-dict-select-tag>--> <!-- <j-dict-select-tag type="list" v-model="model.mobile" :dictCode="mobileVal"></j-dict-select-tag>-->
@ -44,13 +49,13 @@
<script> <script>
import {httpAction, getAction} from '@/api/manage' import {httpAction, getAction} from '@/api/manage'
import JDictSelectTag from '@/components/dict/JDictSelectTag' import JDictSelectTag from '@/components/dict/JDictSelectTag'
import JSelectDepart from '@/components/jeecgbiz/JSelectDepart' import JSelectUserByDep from '@/components/jeecgbiz/JSelectUserByDep'
export default { export default {
name: "GroupxModal", name: "GroupxModal",
components: { components: {
JDictSelectTag, JDictSelectTag,
JSelectDepart, JSelectUserByDep,
}, },
data() { data() {
return { return {
@ -99,42 +104,47 @@ export default {
created() { created() {
}, },
methods: { methods: {
async getMobile() {
getMobile() {
let that = this;
// alert(userIds);
let param = { let param = {
"username": this.model.enterprisesManager, "username": that.model.enterprisesManager,
} }
let that = this; getAction(that.url.sysUserList, param).then((res) => {
const {data: res} = await this.$axios.get('/jeecg-boot/sys/user/list', {params: param}) if (res.success) {
// this.questionBankList = res.result
console.log("userlist:" + JSON.stringify(res))
console.log("the phone:" + JSON.stringify(res.result.records[0].phone))
let phone = JSON.stringify(res.result.records[0].phone); let phone = JSON.stringify(res.result.records[0].phone);
this.model.mobile = phone; console.log("phone:",phone)
}, if (phone.length > 11) {
phone = phone.substring(1, 12);
}else {
phone = "";
}
that.model = Object.assign(that.model, {'mobile': phone});
this.$forceUpdate();
}
});
// getMobile() { // getMobile(userIds) {
// alert(this.model.enterprisesManager); // let that = this;
// this.mobileVal = "sys_user,phone,username,username='" + this.model.enterprisesManager + "'"; // // alert(userIds);
// // this.model.mobile = "123456789";
//
// let param = { // let param = {
// "username": this.model.enterprisesManager, // "username": userIds,
// } // }
// let that = this;
// getAction(this.url.sysUserList, param).then((res) => { // getAction(this.url.sysUserList, param).then((res) => {
// if (res.success) { // if (res.success) {
// console.log("res:" + JSON.stringify(res.result.records[0])) //
// console.log("res22222222:" + JSON.stringify(res.result.records[0].phone)); // let phone = JSON.stringify(res.result.records[0].phone);
// // this.model.mobile = res.result.records[0].phone; // if (phone.length > 11) {
// // this.model.mobile = JSON.stringify(res.result.records[0].phone) // phone = phone.substring(1, 12);
// if (JSON.stringify(res.result.records[0].phone) !== "") {
// that.model.mobile = "15112345678";
// }else { // }else {
// that.model.mobile = JSON.stringify(res.result.records[0].phone) // phone = "";
// } // }
// that.model = Object.assign(that.model, {'mobile': phone});
// this.$forceUpdate();
// } // }
// }); // });
// }, },
add() { add() {
// //
this.edit({}); this.edit({});

@ -67,7 +67,7 @@ export default {
], ],
stationNum: [ stationNum: [
{required: true,message:"工位序号不能不空"}, {required: true,message:"工位序号不能不空"},
{pattern: /^[1-9]{0,100}$/, message: '工位序号不能为空且长度范围在(1-100)间!'} {pattern: /^[1-9]{0,100}$/, message: '工位序号不能为空且长度为(1-100)间正整数'}
], ],
}, },
url: { url: {

@ -6,12 +6,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.team.entity.GroupxMember; import org.jeecg.modules.team.entity.GroupxMember;
import org.jeecg.modules.team.entity.GroupxMember;
import org.jeecg.modules.team.service.IGroupxMemberService; import org.jeecg.modules.team.service.IGroupxMemberService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
@ -19,6 +22,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/** /**
* @Description: 班组成员管理 * @Description: 班组成员管理
@ -67,6 +72,26 @@ public class GroupxMemberController extends JeecgController<GroupxMember, IGroup
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }
@AutoLog(value = "班组成员表管理-添加")
@ApiOperation(value = "班组成员表管理-添加", notes = "班组成员表管理-添加")
@PostMapping(value = "/addBatch")
public Result<?> addBatch(@RequestBody GroupxMember en) {
String userIds = en.getUserId();
List<GroupxMember> addList = new LinkedList<>();
if (StringUtils.isNotBlank(userIds)) {
List<String> list = Arrays.asList(userIds.split(","));
list.forEach(e -> {
GroupxMember s = new GroupxMember();
BeanUtils.copyProperties(en, s);
s.setUserId(e);
addList.add(s);
});
}
groupxMemberService.saveBatch(addList);
return Result.OK("添加成功!");
}
/** /**
* 编辑 * 编辑
* *

Loading…
Cancel
Save