tengxi 2 years ago
parent aa28880ef8
commit 52fed54e45

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="a862a2cd-82ba-4c94-9e4e-63f1c87abe63" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/ant-design-vue/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/ant-design-vue/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ant-design-vue/yarn.lock" beforeDir="false" afterPath="$PROJECT_DIR$/ant-design-vue/yarn.lock" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings">
<execution />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="localRepository" value="D:\repository" />
<option name="mavenHome" value="D:/apache-maven-3.8.3" />
<option name="userSettingsFile" value="D:\apache-maven-3.8.3\conf\settings.xml" />
</MavenGeneralSettings>
</option>
</component>
<component name="ProjectId" id="2LhoDwE5w7BA0XDsAiCCE3ipVCr" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/linkage-boot/pom.xml" />
<property name="settings.editor.selected.configurable" value="configurable.group.editor" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="a862a2cd-82ba-4c94-9e4e-63f1c87abe63" name="Default Changelist" comment="" />
<created>1676332559948</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1676332559948</updated>
<workItem from="1676332564626" duration="1065000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="2" />
</component>
<component name="WindowStateProjectService">
<state x="410" y="165" width="1201" height="710" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1676333642307">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="410" y="165" width="1201" height="710" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1676333642307" />
<state x="674" y="258" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1676333640707">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="674" y="258" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1676333640707" />
<state x="687" y="214" key="FileChooserDialogImpl" timestamp="1676333654392">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="687" y="214" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1676333654392" />
<state x="329" y="77" key="SettingsEditor" timestamp="1676333540030">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="329" y="77" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1676333540030" />
</component>
</project>

@ -0,0 +1,213 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="供料系统编号">
<a-input placeholder="请输入供料系统编号" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="时间查询">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_feeding_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-feeding-equip-modal ref="modalForm" @ok="modalFormOk"></tt-feeding-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtFeedingEquipModal from './modules/TtFeedingEquipModal'
export default {
name: 'TtFeedingEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtFeedingEquipModal
},
data () {
return {
description: 'tt_feeding_equip管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'供料系统编号',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'描述',
align:"center",
dataIndex: 'descr'
},
{
title:'料罐温度(℃)',
align:"center",
dataIndex: 'bucketTemperature'
},
{
title:'采集时间',
align:"center",
dataIndex: 'createTime',
// customRender:function (text) {
// return !text?"":(text.length>10?text.substr(0,10):text)
// }
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttfeedingequip/ttFeedingEquip/list",
delete: "/ttfeedingequip/ttFeedingEquip/delete",
deleteBatch: "/ttfeedingequip/ttFeedingEquip/deleteBatch",
exportXlsUrl: "/ttfeedingequip/ttFeedingEquip/exportXls",
importExcelUrl: "ttfeedingequip/ttFeedingEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'eqtNo',text:'供料系统编号',dictCode:''})
fieldList.push({type:'BigDecimal',value:'bucketTemperature',text:'料罐温度',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:'创建时间'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- 注意该页面对应的前台目录为views/ttfeedingequip文件夹下
-- 如果你想更改到其他目录请修改sql中component字段对应的值
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('202302140320390110', NULL, 'tt_feeding_equip', '/ttfeedingequip/ttFeedingEquipList', 'ttfeedingequip/TtFeedingEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0);
-- 权限控制sql
-- 新增
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400111', '202302140320390110', '添加tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- 编辑
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400112', '202302140320390110', '编辑tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- 删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400113', '202302140320390110', '删除tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- 批量删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400114', '202302140320390110', '批量删除tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- 导出excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400115', '202302140320390110', '导出excel_tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- 导入excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400116', '202302140320390110', '导入excel_tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,115 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="供料系统编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" disabled="true" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="料罐温度(℃)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bucketTemperature">
<a-input-number v-model="model.bucketTemperature" placeholder="请输入料罐温度" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtFeedingEquipForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
// eqtNo: [
// { required: true, message: '!'},
// ],
bucketTemperature: [
{ required: true, message: '请输入料罐温度!'},
],
},
url: {
add: "/ttfeedingequip/ttFeedingEquip/add",
edit: "/ttfeedingequip/ttFeedingEquip/edit",
queryById: "/ttfeedingequip/ttFeedingEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-feeding-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-feeding-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtFeedingEquipForm from './TtFeedingEquipForm'
export default {
name: 'TtFeedingEquipModal',
components: {
TtFeedingEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-feeding-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-feeding-equip-form>
</j-modal>
</template>
<script>
import TtFeedingEquipForm from './TtFeedingEquipForm'
export default {
name: 'TtFeedingEquipModal',
components: {
TtFeedingEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -0,0 +1,213 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="模温机设备编号">
<a-input placeholder="请输入模温机设备编号" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="时间查询">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_mold_temperature_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-mold-temperature-equip-modal ref="modalForm" @ok="modalFormOk"></tt-mold-temperature-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtMoldTemperatureEquipModal from './modules/TtMoldTemperatureEquipModal'
export default {
name: 'TtMoldTemperatureEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtMoldTemperatureEquipModal
},
data () {
return {
description: 'tt_mold_temperature_equip管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'模温机设备编号',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'描述',
align:"center",
dataIndex: 'descr'
},
{
title:'温度(℃)',
align:"center",
dataIndex: 'moldTemperature'
},
{
title:'采集时间',
align:"center",
dataIndex: 'createTime',
// customRender:function (text) {
// return !text?"":(text.length>10?text.substr(0,10):text)
// }
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/list",
delete: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/delete",
deleteBatch: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/deleteBatch",
exportXlsUrl: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/exportXls",
importExcelUrl: "ttmoldtemperatureequip/ttMoldTemperatureEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'BigDecimal',value:'moldTemperature',text:'温度',dictCode:''})
fieldList.push({type:'string',value:'eqtNo',text:'模温机设备编号只有1和2两种值',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:'记录的创建时间'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- 注意该页面对应的前台目录为views/ttmoldtemperatureequip文件夹下
-- 如果你想更改到其他目录请修改sql中component字段对应的值
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('2023021404033310470', NULL, 'tt_mold_temperature_equip', '/ttmoldtemperatureequip/ttMoldTemperatureEquipList', 'ttmoldtemperatureequip/TtMoldTemperatureEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0);
-- 权限控制sql
-- 新增
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033310471', '2023021404033310470', '添加tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- 编辑
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033310472', '2023021404033310470', '编辑tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- 删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320473', '2023021404033310470', '删除tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- 批量删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320474', '2023021404033310470', '批量删除tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- 导出excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320475', '2023021404033310470', '导出excel_tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- 导入excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320476', '2023021404033310470', '导入excel_tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,115 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="模温机设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" disabled="true" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="温度(℃)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moldTemperature">
<a-input-number v-model="model.moldTemperature" placeholder="请输入温度" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtMoldTemperatureEquipForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
moldTemperature: [
{ required: true, message: '请输入温度!'},
],
// eqtNo: [
// { required: true, message: '12!'},
// ],
},
url: {
add: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/add",
edit: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/edit",
queryById: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-mold-temperature-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-mold-temperature-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtMoldTemperatureEquipForm from './TtMoldTemperatureEquipForm'
export default {
name: 'TtMoldTemperatureEquipModal',
components: {
TtMoldTemperatureEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-mold-temperature-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-mold-temperature-equip-form>
</j-modal>
</template>
<script>
import TtMoldTemperatureEquipForm from './TtMoldTemperatureEquipForm'
export default {
name: 'TtMoldTemperatureEquipModal',
components: {
TtMoldTemperatureEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -0,0 +1,219 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="浇筑设备编号">
<a-input placeholder="请输入浇筑设备编号" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="时间查询">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_pouring_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-pouring-equip-modal ref="modalForm" @ok="modalFormOk"></tt-pouring-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtPouringEquipModal from './modules/TtPouringEquipModal'
export default {
name: 'TtPouringEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtPouringEquipModal
},
data () {
return {
description: 'tt_pouring_equip管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'设备编号',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'设备供应商',
align:"center",
dataIndex: 'eqtSupplier'
},
{
title:'料罐温度(℃)',
align:"center",
dataIndex: 'bucketTemperature'
},
{
title:'模具温度(℃)',
align:"center",
dataIndex: 'moldTemperature'
},
{
title:'采集时间',
align:"center",
dataIndex: 'createTime',
// customRender:function (text) {
// return !text?"":(text.length>10?text.substr(0,10):text)
// }
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttpouringequip/ttPouringEquip/list",
delete: "/ttpouringequip/ttPouringEquip/delete",
deleteBatch: "/ttpouringequip/ttPouringEquip/deleteBatch",
exportXlsUrl: "/ttpouringequip/ttPouringEquip/exportXls",
importExcelUrl: "ttpouringequip/ttPouringEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'BigDecimal',value:'bucketTemperature',text:'料罐温度',dictCode:''})
fieldList.push({type:'BigDecimal',value:'moldTemperature',text:'模具温度',dictCode:''})
fieldList.push({type:'string',value:'eqtNo',text:'浇筑设备编号',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:'记录的创建时间'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- 注意该页面对应的前台目录为views/ttpouringequip文件夹下
-- 如果你想更改到其他目录请修改sql中component字段对应的值
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('202302140432200540', NULL, 'tt_pouring_equip', '/ttpouringequip/ttPouringEquipList', 'ttpouringequip/TtPouringEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0);
-- 权限控制sql
-- 新增
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200541', '202302140432200540', '添加tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- 编辑
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200542', '202302140432200540', '编辑tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- 删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200543', '202302140432200540', '删除tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- 批量删除
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200544', '202302140432200540', '批量删除tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- 导出excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200545', '202302140432200540', '导出excel_tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- 导入excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200546', '202302140432200540', '导入excel_tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,123 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="浇筑设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" disabled="true" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="料罐温度(℃)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bucketTemperature">
<a-input-number v-model="model.bucketTemperature" placeholder="请输入料罐温度" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="模具温度(℃)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moldTemperature">
<a-input-number v-model="model.moldTemperature" placeholder="请输入模具温度" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtPouringEquipForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
bucketTemperature: [
{ required: true, message: '请输入料罐温度!'},
],
moldTemperature: [
{ required: true, message: '请输入模具温度!'},
],
// eqtNo: [
// { required: true, message: '!'},
// ],
},
url: {
add: "/ttpouringequip/ttPouringEquip/add",
edit: "/ttpouringequip/ttPouringEquip/edit",
queryById: "/ttpouringequip/ttPouringEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-pouring-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-pouring-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtPouringEquipForm from './TtPouringEquipForm'
export default {
name: 'TtPouringEquipModal',
components: {
TtPouringEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-pouring-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-pouring-equip-form>
</j-modal>
</template>
<script>
import TtPouringEquipForm from './TtPouringEquipForm'
export default {
name: 'TtPouringEquipModal',
components: {
TtPouringEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -208,7 +208,7 @@
], ],
url: { url: {
// list: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/list", // list: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/list",
list: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/QueryTtVirsualSortEquipSecondInfoList", list: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/queryPageList",
delete: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/delete", delete: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/delete",
deleteBatch: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/deleteBatch", deleteBatch: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/deleteBatch",
exportXlsUrl: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/exportXls", exportXlsUrl: "/ttvirsualsortequipsecond/ttVirsualSortEquipSecond/exportXls",

@ -0,0 +1,178 @@
package org.jeecg.modules.demo.tteqtbase.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.tteqtbase.service.ITtEqtBaseService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: tt_eqt_base
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Api(tags="tt_eqt_base")
@RestController
@RequestMapping("/tteqtbase/ttEqtBase")
@Slf4j
public class TtEqtBaseController extends JeecgController<TtEqtBase, ITtEqtBaseService> {
@Autowired
private ITtEqtBaseService ttEqtBaseService;
/**
*
*
* @param ttEqtBase
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tt_eqt_base-分页列表查询")
@ApiOperation(value="tt_eqt_base-分页列表查询", notes="tt_eqt_base-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TtEqtBase>> queryPageList(TtEqtBase ttEqtBase,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TtEqtBase> queryWrapper = QueryGenerator.initQueryWrapper(ttEqtBase, req.getParameterMap());
Page<TtEqtBase> page = new Page<TtEqtBase>(pageNo, pageSize);
IPage<TtEqtBase> pageList = ttEqtBaseService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
*
*
* @param ttEqtBase
* @return
*/
@AutoLog(value = "tt_eqt_base-添加")
@ApiOperation(value="tt_eqt_base-添加", notes="tt_eqt_base-添加")
//@RequiresPermissions("tteqtbase:tt_eqt_base:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TtEqtBase ttEqtBase) {
ttEqtBaseService.save(ttEqtBase);
return Result.OK("添加成功!");
}
/**
*
*
* @param ttEqtBase
* @return
*/
@AutoLog(value = "tt_eqt_base-编辑")
@ApiOperation(value="tt_eqt_base-编辑", notes="tt_eqt_base-编辑")
//@RequiresPermissions("tteqtbase:tt_eqt_base:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TtEqtBase ttEqtBase) {
ttEqtBaseService.updateById(ttEqtBase);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "tt_eqt_base-通过id删除")
@ApiOperation(value="tt_eqt_base-通过id删除", notes="tt_eqt_base-通过id删除")
//@RequiresPermissions("tteqtbase:tt_eqt_base:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ttEqtBaseService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "tt_eqt_base-批量删除")
@ApiOperation(value="tt_eqt_base-批量删除", notes="tt_eqt_base-批量删除")
//@RequiresPermissions("tteqtbase:tt_eqt_base:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ttEqtBaseService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "tt_eqt_base-通过id查询")
@ApiOperation(value="tt_eqt_base-通过id查询", notes="tt_eqt_base-通过id查询")
@GetMapping(value = "/queryById")
public Result<TtEqtBase> queryById(@RequestParam(name="id",required=true) String id) {
TtEqtBase ttEqtBase = ttEqtBaseService.getById(id);
if(ttEqtBase==null) {
return Result.error("未找到对应数据");
}
return Result.OK(ttEqtBase);
}
/**
* excel
*
* @param request
* @param ttEqtBase
*/
//@RequiresPermissions("tteqtbase:tt_eqt_base:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TtEqtBase ttEqtBase) {
return super.exportXls(request, ttEqtBase, TtEqtBase.class, "tt_eqt_base");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
//@RequiresPermissions("tteqtbase:tt_eqt_base:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TtEqtBase.class);
}
}

@ -0,0 +1,95 @@
package org.jeecg.modules.demo.tteqtbase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: tt_eqt_base
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Data
@TableName("tt_eqt_base")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_eqt_base对象", description="tt_eqt_base")
public class TtEqtBase implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private Integer id;
/**设备(机台)编号*/
@Excel(name = "设备(机台)编号", width = 15)
@ApiModelProperty(value = "设备(机台)编号")
private String eqtNo;
/**用于采集设备数据的协议转换器 IP地址*/
@Excel(name = "用于采集设备数据的协议转换器 IP地址", width = 15)
@ApiModelProperty(value = "用于采集设备数据的协议转换器 IP地址")
private String eqtIp;
/**设备供应商名称*/
@Excel(name = "设备供应商名称", width = 15)
@ApiModelProperty(value = "设备供应商名称")
private String eqtSupplier;
/**id
1
2
3
4
5
6:
7 : */
@Excel(name = "设备类型id 1注塑机 2浇筑机 3硫化机 4水道系统 5集中供料系统 6: 数字电表 7 : 模温机", width = 15)
@ApiModelProperty(value = "设备类型id 1注塑机 2浇筑机 3硫化机 4水道系统 5集中供料系统 6: 数字电表 7 : 模温机")
private java.lang.Integer eqtType;
/**设备位置*/
@Excel(name = "设备位置", width = 15)
@ApiModelProperty(value = "设备位置")
private java.lang.String location;
/**描述*/
@Excel(name = "描述", width = 15)
@ApiModelProperty(value = "描述")
private java.lang.String descr;
/**设备状态, 1运行 2 待机 3故障 4关机*/
@Excel(name = "设备状态, 1运行 2 待机 3故障 4关机", width = 15)
@ApiModelProperty(value = "设备状态, 1运行 2 待机 3故障 4关机")
private java.lang.Integer eqtStatus;
/**设备最近7天利用率*/
@Excel(name = "设备最近7天利用率", width = 15)
@ApiModelProperty(value = "设备最近7天利用率")
private java.math.BigDecimal utilizeRate;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人*/
@ApiModelProperty(value = "记录的创建人")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人*/
@ApiModelProperty(value = "记录的修改人")
private java.lang.String updateBy;
}

@ -0,0 +1,17 @@
package org.jeecg.modules.demo.tteqtbase.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: tt_eqt_base
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface TtEqtBaseMapper extends BaseMapper<TtEqtBase> {
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.tteqtbase.mapper.TtEqtBaseMapper">
</mapper>

@ -0,0 +1,14 @@
package org.jeecg.modules.demo.tteqtbase.service;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: tt_eqt_base
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface ITtEqtBaseService extends IService<TtEqtBase> {
}

@ -0,0 +1,19 @@
package org.jeecg.modules.demo.tteqtbase.service.impl;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.tteqtbase.mapper.TtEqtBaseMapper;
import org.jeecg.modules.demo.tteqtbase.service.ITtEqtBaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: tt_eqt_base
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Service
public class TtEqtBaseServiceImpl extends ServiceImpl<TtEqtBaseMapper, TtEqtBase> implements ITtEqtBaseService {
}

@ -0,0 +1,229 @@
<template>
<a-card :bordered="false">
<!-- -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
</a-row>
</a-form>
</div>
<!-- -END -->
<!-- -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_eqt_base')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link"> <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a></a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-eqt-base-modal ref="modalForm" @ok="modalFormOk"></tt-eqt-base-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtEqtBaseModal from './modules/TtEqtBaseModal'
export default {
name: 'TtEqtBaseList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtEqtBaseModal
},
data () {
return {
description: 'tt_eqt_base',
// 表头
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'',
align:"center",
dataIndex: 'eqtNo'
},
{
title:' IP',
align:"center",
dataIndex: 'eqtIp'
},
{
title:'',
align:"center",
dataIndex: 'eqtSupplier'
},
{
title:'id
1
2
3
4
5
6:
7 : ',
align:"center",
dataIndex: 'eqtType'
},
{
title:'',
align:"center",
dataIndex: 'location'
},
{
title:'',
align:"center",
dataIndex: 'descr'
},
{
title:' 1 2 3 4',
align:"center",
dataIndex: 'eqtStatus'
},
{
title:'7',
align:"center",
dataIndex: 'utilizeRate'
},
{
title: '',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/tteqtbase/ttEqtBase/list",
delete: "/tteqtbase/ttEqtBase/delete",
deleteBatch: "/tteqtbase/ttEqtBase/deleteBatch",
exportXlsUrl: "/tteqtbase/ttEqtBase/exportXls",
importExcelUrl: "tteqtbase/ttEqtBase/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'eqtNo',text:''})
fieldList.push({type:'string',value:'eqtIp',text:' IP'})
fieldList.push({type:'string',value:'eqtSupplier',text:''})
fieldList.push({type:'int',value:'eqtType',text:'id
1
2
3
4
5
6:
7 : '})
fieldList.push({type:'string',value:'location',text:''})
fieldList.push({type:'string',value:'descr',text:''})
fieldList.push({type:'int',value:'eqtStatus',text:' 1 2 3 4'})
fieldList.push({type:'number',value:'utilizeRate',text:'7'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- views/tteqtbase
-- sqlcomponent
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('2023021403388670040', NULL, 'tt_eqt_base', '/tteqtbase/ttEqtBaseList', 'tteqtbase/TtEqtBaseList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0);
-- sql
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670041', '2023021403388670040', 'tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670042', '2023021403388670040', 'tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670043', '2023021403388670040', 'tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670044', '2023021403388670040', 'tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670045', '2023021403388670040', 'excel_tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021403388670046', '2023021403388670040', 'excel_tt_eqt_base', NULL, NULL, 0, NULL, NULL, 2, 'tteqtbase:tt_eqt_base:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:38:04', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,169 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="设备(机台)编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" placeholder="请输入设备(机台)编号" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="用于采集设备数据的协议转换器 IP地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtIp">
<a-input v-model="model.eqtIp" placeholder="请输入用于采集设备数据的协议转换器 IP地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="设备供应商名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtSupplier">
<a-input v-model="model.eqtSupplier" placeholder="请输入设备供应商名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="id
1
2
3
4
5
6:
7 : " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtType">
<a-input-number v-model="model.eqtType" placeholder="id
1
2
3
4
5
6:
7 : " style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="设备位置" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="location">
<a-input v-model="model.location" placeholder="请输入设备位置" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="descr">
<a-input v-model="model.descr" placeholder="请输入描述" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="设备状态, 1运行 2 待机 3故障 4关机" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtStatus">
<a-input-number v-model="model.eqtStatus" placeholder="请输入设备状态, 1运行 2 待机 3故障 4关机" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="设备最近7天利用率" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="utilizeRate">
<a-input-number v-model="model.utilizeRate" placeholder="请输入设备最近7天利用率" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtEqtBaseForm',
components: {
},
props: {
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
eqtNo: [
{ required: true, message: '!'},
],
eqtType: [
{ required: true, message: 'id
1
2
3
4
5
6:
7 : !'},
],
},
url: {
add: "/tteqtbase/ttEqtBase/add",
edit: "/tteqtbase/ttEqtBase/edit",
queryById: "/tteqtbase/ttEqtBase/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-eqt-base-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-eqt-base-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;"></a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtEqtBaseForm from './TtEqtBaseForm'
export default {
name: 'TtEqtBaseModal',
components: {
TtEqtBaseForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-eqt-base-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-eqt-base-form>
</j-modal>
</template>
<script>
import TtEqtBaseForm from './TtEqtBaseForm'
export default {
name: 'TtEqtBaseModal',
components: {
TtEqtBaseForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -0,0 +1,195 @@
package org.jeecg.modules.demo.ttfeedingequip.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.checkerframework.checker.units.qual.A;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.tteqtbase.service.ITtEqtBaseService;
import org.jeecg.modules.demo.ttfeedingequip.entity.TtFeedingEquip;
import org.jeecg.modules.demo.ttfeedingequip.service.ITtFeedingEquipService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: tt_feeding_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Api(tags="tt_feeding_equip")
@RestController
@RequestMapping("/ttfeedingequip/ttFeedingEquip")
@Slf4j
public class TtFeedingEquipController extends JeecgController<TtFeedingEquip, ITtFeedingEquipService> {
@Autowired
private ITtFeedingEquipService ttFeedingEquipService;
@Autowired
private ITtEqtBaseService ttEqtBaseService;
/**
*
*
* @param ttFeedingEquip
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tt_feeding_equip-分页列表查询")
@ApiOperation(value="tt_feeding_equip-分页列表查询", notes="tt_feeding_equip-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TtFeedingEquip>> queryPageList(TtFeedingEquip ttFeedingEquip,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TtFeedingEquip> queryWrapper = QueryGenerator.initQueryWrapper(ttFeedingEquip, req.getParameterMap());
Page<TtFeedingEquip> page = new Page<TtFeedingEquip>(pageNo, pageSize);
IPage<TtFeedingEquip> pageList = ttFeedingEquipService.page(page, queryWrapper);
List<TtFeedingEquip> list = pageList.getRecords();
for (TtFeedingEquip feeding : list){
QueryWrapper<TtEqtBase> eqtBase = new QueryWrapper<>();
eqtBase.eq("eqt_no",feeding.getEqtNo());
eqtBase.eq("eqt_type",5);
TtEqtBase ttEqtBase = ttEqtBaseService.getOne(eqtBase);
feeding.setDescr(ttEqtBase.getDescr());
}
return Result.OK(pageList);
}
/**
*
*
* @param ttFeedingEquip
* @return
*/
@AutoLog(value = "tt_feeding_equip-添加")
@ApiOperation(value="tt_feeding_equip-添加", notes="tt_feeding_equip-添加")
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TtFeedingEquip ttFeedingEquip) {
ttFeedingEquipService.save(ttFeedingEquip);
return Result.OK("添加成功!");
}
/**
*
*
* @param ttFeedingEquip
* @return
*/
@AutoLog(value = "tt_feeding_equip-编辑")
@ApiOperation(value="tt_feeding_equip-编辑", notes="tt_feeding_equip-编辑")
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TtFeedingEquip ttFeedingEquip) {
ttFeedingEquipService.updateById(ttFeedingEquip);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "tt_feeding_equip-通过id删除")
@ApiOperation(value="tt_feeding_equip-通过id删除", notes="tt_feeding_equip-通过id删除")
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ttFeedingEquipService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "tt_feeding_equip-批量删除")
@ApiOperation(value="tt_feeding_equip-批量删除", notes="tt_feeding_equip-批量删除")
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ttFeedingEquipService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "tt_feeding_equip-通过id查询")
@ApiOperation(value="tt_feeding_equip-通过id查询", notes="tt_feeding_equip-通过id查询")
@GetMapping(value = "/queryById")
public Result<TtFeedingEquip> queryById(@RequestParam(name="id",required=true) String id) {
TtFeedingEquip ttFeedingEquip = ttFeedingEquipService.getById(id);
if(ttFeedingEquip==null) {
return Result.error("未找到对应数据");
}
return Result.OK(ttFeedingEquip);
}
/**
* excel
*
* @param request
* @param ttFeedingEquip
*/
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TtFeedingEquip ttFeedingEquip) {
return super.exportXls(request, ttFeedingEquip, TtFeedingEquip.class, "tt_feeding_equip");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
//@RequiresPermissions("ttfeedingequip:tt_feeding_equip:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TtFeedingEquip.class);
}
}

@ -0,0 +1,64 @@
package org.jeecg.modules.demo.ttfeedingequip.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: tt_feeding_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Data
@TableName("tt_feeding_equip")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_feeding_equip对象", description="tt_feeding_equip")
public class TtFeedingEquip implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private Integer id;
/**设备(供料系统)编号*/
@Excel(name = "设备(供料系统)编号", width = 15)
@ApiModelProperty(value = "设备(供料系统)编号")
private String eqtNo;
/**料罐温度*/
@Excel(name = "料罐温度", width = 15)
@ApiModelProperty(value = "料罐温度")
private BigDecimal bucketTemperature;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "记录的创建时间")
private Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private String updateBy;
@TableField(exist = false)
private String descr;
}

@ -0,0 +1,17 @@
package org.jeecg.modules.demo.ttfeedingequip.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttfeedingequip.entity.TtFeedingEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: tt_feeding_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface TtFeedingEquipMapper extends BaseMapper<TtFeedingEquip> {
}

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.ttfeedingequip.mapper.TtFeedingEquipMapper">
<select id="queryFeedingData" resultType="org.jeecg.modules.demo.ttfeedingequip.entity.TtFeedingEquip">
SELECT
a.id,
a.eqt_no,
a.bucket_temperature,
b.descr,
a.create_time
FROM
`tt_feeding_equip` a
LEFT JOIN tt_eqt_base b ON b.eqt_type = 5
AND a.eqt_no = b.eqt_no
</select>
</mapper>

@ -0,0 +1,14 @@
package org.jeecg.modules.demo.ttfeedingequip.service;
import org.jeecg.modules.demo.ttfeedingequip.entity.TtFeedingEquip;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: tt_feeding_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface ITtFeedingEquipService extends IService<TtFeedingEquip> {
}

@ -0,0 +1,19 @@
package org.jeecg.modules.demo.ttfeedingequip.service.impl;
import org.jeecg.modules.demo.ttfeedingequip.entity.TtFeedingEquip;
import org.jeecg.modules.demo.ttfeedingequip.mapper.TtFeedingEquipMapper;
import org.jeecg.modules.demo.ttfeedingequip.service.ITtFeedingEquipService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: tt_feeding_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Service
public class TtFeedingEquipServiceImpl extends ServiceImpl<TtFeedingEquipMapper, TtFeedingEquip> implements ITtFeedingEquipService {
}

@ -0,0 +1,208 @@
<template>
<a-card :bordered="false">
<!-- -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="设备(供料系统)编号">
<a-input placeholder="请输入设备(供料系统)编号" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="记录的创建时间">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search"></a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px"></a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '' : '' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- -END -->
<!-- -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_feeding_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link"> <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a></a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-feeding-equip-modal ref="modalForm" @ok="modalFormOk"></tt-feeding-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtFeedingEquipModal from './modules/TtFeedingEquipModal'
export default {
name: 'TtFeedingEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtFeedingEquipModal
},
data () {
return {
description: 'tt_feeding_equip',
// 表头
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'',
align:"center",
dataIndex: 'bucketTemperature'
},
{
title:'',
align:"center",
dataIndex: 'createTime',
customRender:function (text) {
return !text?"":(text.length>10?text.substr(0,10):text)
}
},
{
title: '',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttfeedingequip/ttFeedingEquip/list",
delete: "/ttfeedingequip/ttFeedingEquip/delete",
deleteBatch: "/ttfeedingequip/ttFeedingEquip/deleteBatch",
exportXlsUrl: "/ttfeedingequip/ttFeedingEquip/exportXls",
importExcelUrl: "ttfeedingequip/ttFeedingEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'eqtNo',text:'',dictCode:''})
fieldList.push({type:'BigDecimal',value:'bucketTemperature',text:'',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- views/ttfeedingequip
-- sqlcomponent
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('202302140320390110', NULL, 'tt_feeding_equip', '/ttfeedingequip/ttFeedingEquipList', 'ttfeedingequip/TtFeedingEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0);
-- sql
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400111', '202302140320390110', 'tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400112', '202302140320390110', 'tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400113', '202302140320390110', 'tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400114', '202302140320390110', 'tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400115', '202302140320390110', 'excel_tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140320400116', '202302140320390110', 'excel_tt_feeding_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttfeedingequip:tt_feeding_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 15:20:11', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,115 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="设备(供料系统)编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" placeholder="请输入设备(供料系统)编号" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="料罐温度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bucketTemperature">
<a-input-number v-model="model.bucketTemperature" placeholder="请输入料罐温度" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtFeedingEquipForm',
components: {
},
props: {
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
eqtNo: [
{ required: true, message: '!'},
],
bucketTemperature: [
{ required: true, message: '!'},
],
},
url: {
add: "/ttfeedingequip/ttFeedingEquip/add",
edit: "/ttfeedingequip/ttFeedingEquip/edit",
queryById: "/ttfeedingequip/ttFeedingEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-feeding-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-feeding-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;"></a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtFeedingEquipForm from './TtFeedingEquipForm'
export default {
name: 'TtFeedingEquipModal',
components: {
TtFeedingEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-feeding-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-feeding-equip-form>
</j-modal>
</template>
<script>
import TtFeedingEquipForm from './TtFeedingEquipForm'
export default {
name: 'TtFeedingEquipModal',
components: {
TtFeedingEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -0,0 +1,196 @@
package org.jeecg.modules.demo.ttmoldtemperatureequip.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.tteqtbase.service.ITtEqtBaseService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.demo.ttmoldtemperatureequip.entity.TtMoldTemperatureEquip;
import org.jeecg.modules.demo.ttmoldtemperatureequip.service.ITtMoldTemperatureEquipService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: tt_mold_temperature_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Api(tags="tt_mold_temperature_equip")
@RestController
@RequestMapping("/ttmoldtemperatureequip/ttMoldTemperatureEquip")
@Slf4j
public class TtMoldTemperatureEquipController extends JeecgController<TtMoldTemperatureEquip, ITtMoldTemperatureEquipService> {
@Autowired
private ITtMoldTemperatureEquipService ttMoldTemperatureEquipService;
@Autowired
private ITtEqtBaseService ttEqtBaseService;
/**
*
*
* @param ttMoldTemperatureEquip
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tt_mold_temperature_equip-分页列表查询")
@ApiOperation(value="tt_mold_temperature_equip-分页列表查询", notes="tt_mold_temperature_equip-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TtMoldTemperatureEquip>> queryPageList(TtMoldTemperatureEquip ttMoldTemperatureEquip,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TtMoldTemperatureEquip> queryWrapper = QueryGenerator.initQueryWrapper(ttMoldTemperatureEquip, req.getParameterMap());
Page<TtMoldTemperatureEquip> page = new Page<TtMoldTemperatureEquip>(pageNo, pageSize);
IPage<TtMoldTemperatureEquip> pageList = ttMoldTemperatureEquipService.page(page, queryWrapper);
List<TtMoldTemperatureEquip> list = pageList.getRecords();
for (TtMoldTemperatureEquip mold : list){
QueryWrapper<TtEqtBase> eqtBase = new QueryWrapper<>();
eqtBase.eq("eqt_no",mold.getEqtNo());
eqtBase.eq("eqt_type",7);
TtEqtBase ttEqtBase = ttEqtBaseService.getOne(eqtBase);
mold.setDescr(ttEqtBase.getDescr());
}
return Result.OK(pageList);
}
/**
*
*
* @param ttMoldTemperatureEquip
* @return
*/
@AutoLog(value = "tt_mold_temperature_equip-添加")
@ApiOperation(value="tt_mold_temperature_equip-添加", notes="tt_mold_temperature_equip-添加")
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TtMoldTemperatureEquip ttMoldTemperatureEquip) {
ttMoldTemperatureEquipService.save(ttMoldTemperatureEquip);
return Result.OK("添加成功!");
}
/**
*
*
* @param ttMoldTemperatureEquip
* @return
*/
@AutoLog(value = "tt_mold_temperature_equip-编辑")
@ApiOperation(value="tt_mold_temperature_equip-编辑", notes="tt_mold_temperature_equip-编辑")
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TtMoldTemperatureEquip ttMoldTemperatureEquip) {
ttMoldTemperatureEquipService.updateById(ttMoldTemperatureEquip);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "tt_mold_temperature_equip-通过id删除")
@ApiOperation(value="tt_mold_temperature_equip-通过id删除", notes="tt_mold_temperature_equip-通过id删除")
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ttMoldTemperatureEquipService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "tt_mold_temperature_equip-批量删除")
@ApiOperation(value="tt_mold_temperature_equip-批量删除", notes="tt_mold_temperature_equip-批量删除")
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ttMoldTemperatureEquipService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "tt_mold_temperature_equip-通过id查询")
@ApiOperation(value="tt_mold_temperature_equip-通过id查询", notes="tt_mold_temperature_equip-通过id查询")
@GetMapping(value = "/queryById")
public Result<TtMoldTemperatureEquip> queryById(@RequestParam(name="id",required=true) String id) {
TtMoldTemperatureEquip ttMoldTemperatureEquip = ttMoldTemperatureEquipService.getById(id);
if(ttMoldTemperatureEquip==null) {
return Result.error("未找到对应数据");
}
return Result.OK(ttMoldTemperatureEquip);
}
/**
* excel
*
* @param request
* @param ttMoldTemperatureEquip
*/
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TtMoldTemperatureEquip ttMoldTemperatureEquip) {
return super.exportXls(request, ttMoldTemperatureEquip, TtMoldTemperatureEquip.class, "tt_mold_temperature_equip");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
//@RequiresPermissions("ttmoldtemperatureequip:tt_mold_temperature_equip:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TtMoldTemperatureEquip.class);
}
}

@ -0,0 +1,64 @@
package org.jeecg.modules.demo.ttmoldtemperatureequip.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: tt_mold_temperature_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Data
@TableName("tt_mold_temperature_equip")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_mold_temperature_equip对象", description="tt_mold_temperature_equip")
public class TtMoldTemperatureEquip implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private Integer id;
/**温度*/
@Excel(name = "温度", width = 15)
@ApiModelProperty(value = "温度")
private BigDecimal moldTemperature;
/**模温机设备编号只有1和2两种值*/
@Excel(name = "模温机设备编号只有1和2两种值", width = 15)
@ApiModelProperty(value = "模温机设备编号只有1和2两种值")
private String eqtNo;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "记录的创建时间")
private Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private String updateBy;
@TableField(exist = false)
private String descr;
}

@ -0,0 +1,17 @@
package org.jeecg.modules.demo.ttmoldtemperatureequip.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttmoldtemperatureequip.entity.TtMoldTemperatureEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: tt_mold_temperature_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface TtMoldTemperatureEquipMapper extends BaseMapper<TtMoldTemperatureEquip> {
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.ttmoldtemperatureequip.mapper.TtMoldTemperatureEquipMapper">
</mapper>

@ -0,0 +1,14 @@
package org.jeecg.modules.demo.ttmoldtemperatureequip.service;
import org.jeecg.modules.demo.ttmoldtemperatureequip.entity.TtMoldTemperatureEquip;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: tt_mold_temperature_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface ITtMoldTemperatureEquipService extends IService<TtMoldTemperatureEquip> {
}

@ -0,0 +1,19 @@
package org.jeecg.modules.demo.ttmoldtemperatureequip.service.impl;
import org.jeecg.modules.demo.ttmoldtemperatureequip.entity.TtMoldTemperatureEquip;
import org.jeecg.modules.demo.ttmoldtemperatureequip.mapper.TtMoldTemperatureEquipMapper;
import org.jeecg.modules.demo.ttmoldtemperatureequip.service.ITtMoldTemperatureEquipService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: tt_mold_temperature_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Service
public class TtMoldTemperatureEquipServiceImpl extends ServiceImpl<TtMoldTemperatureEquipMapper, TtMoldTemperatureEquip> implements ITtMoldTemperatureEquipService {
}

@ -0,0 +1,208 @@
<template>
<a-card :bordered="false">
<!-- -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="模温机设备编号只有1和2两种值">
<a-input placeholder="请输入模温机设备编号只有1和2两种值" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="记录的创建时间">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search"></a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px"></a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '' : '' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- -END -->
<!-- -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_mold_temperature_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link"> <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a></a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-mold-temperature-equip-modal ref="modalForm" @ok="modalFormOk"></tt-mold-temperature-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtMoldTemperatureEquipModal from './modules/TtMoldTemperatureEquipModal'
export default {
name: 'TtMoldTemperatureEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtMoldTemperatureEquipModal
},
data () {
return {
description: 'tt_mold_temperature_equip',
// 表头
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'',
align:"center",
dataIndex: 'moldTemperature'
},
{
title:'12',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'',
align:"center",
dataIndex: 'createTime',
customRender:function (text) {
return !text?"":(text.length>10?text.substr(0,10):text)
}
},
{
title: '',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/list",
delete: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/delete",
deleteBatch: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/deleteBatch",
exportXlsUrl: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/exportXls",
importExcelUrl: "ttmoldtemperatureequip/ttMoldTemperatureEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'BigDecimal',value:'moldTemperature',text:'',dictCode:''})
fieldList.push({type:'string',value:'eqtNo',text:'12',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- views/ttmoldtemperatureequip
-- sqlcomponent
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('2023021404033310470', NULL, 'tt_mold_temperature_equip', '/ttmoldtemperatureequip/ttMoldTemperatureEquipList', 'ttmoldtemperatureequip/TtMoldTemperatureEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0);
-- sql
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033310471', '2023021404033310470', 'tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033310472', '2023021404033310470', 'tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320473', '2023021404033310470', 'tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320474', '2023021404033310470', 'tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320475', '2023021404033310470', 'excel_tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('2023021404033320476', '2023021404033310470', 'excel_tt_mold_temperature_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttmoldtemperatureequip:tt_mold_temperature_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:03:47', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,115 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="温度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moldTemperature">
<a-input-number v-model="model.moldTemperature" placeholder="请输入温度" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="模温机设备编号只有1和2两种值" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" placeholder="请输入模温机设备编号只有1和2两种值" ></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtMoldTemperatureEquipForm',
components: {
},
props: {
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
moldTemperature: [
{ required: true, message: '!'},
],
eqtNo: [
{ required: true, message: '12!'},
],
},
url: {
add: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/add",
edit: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/edit",
queryById: "/ttmoldtemperatureequip/ttMoldTemperatureEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-mold-temperature-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-mold-temperature-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;"></a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtMoldTemperatureEquipForm from './TtMoldTemperatureEquipForm'
export default {
name: 'TtMoldTemperatureEquipModal',
components: {
TtMoldTemperatureEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-mold-temperature-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-mold-temperature-equip-form>
</j-modal>
</template>
<script>
import TtMoldTemperatureEquipForm from './TtMoldTemperatureEquipForm'
export default {
name: 'TtMoldTemperatureEquipModal',
components: {
TtMoldTemperatureEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -0,0 +1,193 @@
package org.jeecg.modules.demo.ttpouringequip.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.PrimitiveIterator;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.tteqtbase.service.ITtEqtBaseService;
import org.jeecg.modules.demo.ttmoldtemperatureequip.entity.TtMoldTemperatureEquip;
import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import org.jeecg.modules.demo.ttpouringequip.service.ITtPouringEquipService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: tt_pouring_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Api(tags="tt_pouring_equip")
@RestController
@RequestMapping("/ttpouringequip/ttPouringEquip")
@Slf4j
public class TtPouringEquipController extends JeecgController<TtPouringEquip, ITtPouringEquipService> {
@Autowired
private ITtPouringEquipService ttPouringEquipService;
@Autowired
private ITtEqtBaseService ttEqtBaseService;
/**
*
*
* @param ttPouringEquip
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tt_pouring_equip-分页列表查询")
@ApiOperation(value="tt_pouring_equip-分页列表查询", notes="tt_pouring_equip-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TtPouringEquip>> queryPageList(TtPouringEquip ttPouringEquip,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TtPouringEquip> queryWrapper = QueryGenerator.initQueryWrapper(ttPouringEquip, req.getParameterMap());
Page<TtPouringEquip> page = new Page<TtPouringEquip>(pageNo, pageSize);
IPage<TtPouringEquip> pageList = ttPouringEquipService.page(page, queryWrapper);
List<TtPouringEquip> list = pageList.getRecords();
for (TtPouringEquip pouring : list){
QueryWrapper<TtEqtBase> eqtBase = new QueryWrapper<>();
eqtBase.eq("eqt_no",pouring.getEqtNo());
eqtBase.eq("eqt_type",2);
TtEqtBase ttEqtBase = ttEqtBaseService.getOne(eqtBase);
pouring.setEqtSupplier(ttEqtBase.getEqtSupplier());
}
return Result.OK(pageList);
}
/**
*
*
* @param ttPouringEquip
* @return
*/
@AutoLog(value = "tt_pouring_equip-添加")
@ApiOperation(value="tt_pouring_equip-添加", notes="tt_pouring_equip-添加")
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TtPouringEquip ttPouringEquip) {
ttPouringEquipService.save(ttPouringEquip);
return Result.OK("添加成功!");
}
/**
*
*
* @param ttPouringEquip
* @return
*/
@AutoLog(value = "tt_pouring_equip-编辑")
@ApiOperation(value="tt_pouring_equip-编辑", notes="tt_pouring_equip-编辑")
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TtPouringEquip ttPouringEquip) {
ttPouringEquipService.updateById(ttPouringEquip);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "tt_pouring_equip-通过id删除")
@ApiOperation(value="tt_pouring_equip-通过id删除", notes="tt_pouring_equip-通过id删除")
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ttPouringEquipService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "tt_pouring_equip-批量删除")
@ApiOperation(value="tt_pouring_equip-批量删除", notes="tt_pouring_equip-批量删除")
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.ttPouringEquipService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "tt_pouring_equip-通过id查询")
@ApiOperation(value="tt_pouring_equip-通过id查询", notes="tt_pouring_equip-通过id查询")
@GetMapping(value = "/queryById")
public Result<TtPouringEquip> queryById(@RequestParam(name="id",required=true) String id) {
TtPouringEquip ttPouringEquip = ttPouringEquipService.getById(id);
if(ttPouringEquip==null) {
return Result.error("未找到对应数据");
}
return Result.OK(ttPouringEquip);
}
/**
* excel
*
* @param request
* @param ttPouringEquip
*/
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TtPouringEquip ttPouringEquip) {
return super.exportXls(request, ttPouringEquip, TtPouringEquip.class, "tt_pouring_equip");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
//@RequiresPermissions("ttpouringequip:tt_pouring_equip:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TtPouringEquip.class);
}
}

@ -0,0 +1,68 @@
package org.jeecg.modules.demo.ttpouringequip.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: tt_pouring_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Data
@TableName("tt_pouring_equip")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_pouring_equip对象", description="tt_pouring_equip")
public class TtPouringEquip implements Serializable {
private static final long serialVersionUID = 1L;
/**自增字段*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "自增字段")
private Integer id;
/**料罐温度*/
@Excel(name = "料罐温度", width = 15)
@ApiModelProperty(value = "料罐温度")
private BigDecimal bucketTemperature;
/**模具温度*/
@Excel(name = "模具温度", width = 15)
@ApiModelProperty(value = "模具温度")
private BigDecimal moldTemperature;
/**浇筑设备编号*/
@Excel(name = "浇筑设备编号", width = 15)
@ApiModelProperty(value = "浇筑设备编号")
private String eqtNo;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "记录的创建时间")
private Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private String updateBy;
@TableField(exist = false)
private String eqtSupplier;
}

@ -0,0 +1,17 @@
package org.jeecg.modules.demo.ttpouringequip.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: tt_pouring_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface TtPouringEquipMapper extends BaseMapper<TtPouringEquip> {
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.ttpouringequip.mapper.TtPouringEquipMapper">
</mapper>

@ -0,0 +1,14 @@
package org.jeecg.modules.demo.ttpouringequip.service;
import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: tt_pouring_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
public interface ITtPouringEquipService extends IService<TtPouringEquip> {
}

@ -0,0 +1,19 @@
package org.jeecg.modules.demo.ttpouringequip.service.impl;
import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import org.jeecg.modules.demo.ttpouringequip.mapper.TtPouringEquipMapper;
import org.jeecg.modules.demo.ttpouringequip.service.ITtPouringEquipService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: tt_pouring_equip
* @Author: jeecg-boot
* @Date: 2023-02-14
* @Version: V1.0
*/
@Service
public class TtPouringEquipServiceImpl extends ServiceImpl<TtPouringEquipMapper, TtPouringEquip> implements ITtPouringEquipService {
}

@ -0,0 +1,214 @@
<template>
<a-card :bordered="false">
<!-- -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="浇筑设备编号">
<a-input placeholder="请输入浇筑设备编号" v-model="queryParam.eqtNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="记录的创建时间">
<j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search"></a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px"></a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '' : '' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- -END -->
<!-- -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('tt_pouring_equip')"></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>
<a-dropdown v-if="selectedRowKeys.length > 0">
<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 -->
<div>
<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>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link"> <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a></a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<tt-pouring-equip-modal ref="modalForm" @ok="modalFormOk"></tt-pouring-equip-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import TtPouringEquipModal from './modules/TtPouringEquipModal'
export default {
name: 'TtPouringEquipList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TtPouringEquipModal
},
data () {
return {
description: 'tt_pouring_equip',
// 表头
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'',
align:"center",
dataIndex: 'bucketTemperature'
},
{
title:'',
align:"center",
dataIndex: 'moldTemperature'
},
{
title:'',
align:"center",
dataIndex: 'eqtNo'
},
{
title:'',
align:"center",
dataIndex: 'createTime',
customRender:function (text) {
return !text?"":(text.length>10?text.substr(0,10):text)
}
},
{
title: '',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/ttpouringequip/ttPouringEquip/list",
delete: "/ttpouringequip/ttPouringEquip/delete",
deleteBatch: "/ttpouringequip/ttPouringEquip/deleteBatch",
exportXlsUrl: "/ttpouringequip/ttPouringEquip/exportXls",
importExcelUrl: "ttpouringequip/ttPouringEquip/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'BigDecimal',value:'bucketTemperature',text:'',dictCode:''})
fieldList.push({type:'BigDecimal',value:'moldTemperature',text:'',dictCode:''})
fieldList.push({type:'string',value:'eqtNo',text:'',dictCode:''})
fieldList.push({type:'date',value:'createTime',text:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,26 @@
-- views/ttpouringequip
-- sqlcomponent
INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external)
VALUES ('202302140432200540', NULL, 'tt_pouring_equip', '/ttpouringequip/ttPouringEquipList', 'ttpouringequip/TtPouringEquipList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0);
-- sql
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200541', '202302140432200540', 'tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200542', '202302140432200540', 'tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200543', '202302140432200540', 'tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
--
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200544', '202302140432200540', 'tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200545', '202302140432200540', 'excel_tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);
-- excel
INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
VALUES ('202302140432200546', '202302140432200540', 'excel_tt_pouring_equip', NULL, NULL, 0, NULL, NULL, 2, 'ttpouringequip:tt_pouring_equip:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-02-14 16:32:54', NULL, NULL, 0, 0, '1', 0);

@ -0,0 +1,123 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="料罐温度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bucketTemperature">
<a-input-number v-model="model.bucketTemperature" placeholder="请输入料罐温度" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="模具温度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moldTemperature">
<a-input-number v-model="model.moldTemperature" placeholder="请输入模具温度" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="浇筑设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eqtNo">
<a-input v-model="model.eqtNo" placeholder="请输入浇筑设备编号" ></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TtPouringEquipForm',
components: {
},
props: {
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
bucketTemperature: [
{ required: true, message: '!'},
],
moldTemperature: [
{ required: true, message: '!'},
],
eqtNo: [
{ required: true, message: '!'},
],
},
url: {
add: "/ttpouringequip/ttPouringEquip/add",
edit: "/ttpouringequip/ttPouringEquip/edit",
queryById: "/ttpouringequip/ttPouringEquip/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<tt-pouring-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tt-pouring-equip-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;"></a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import TtPouringEquipForm from './TtPouringEquipForm'
export default {
name: 'TtPouringEquipModal',
components: {
TtPouringEquipForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<tt-pouring-equip-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tt-pouring-equip-form>
</j-modal>
</template>
<script>
import TtPouringEquipForm from './TtPouringEquipForm'
export default {
name: 'TtPouringEquipModal',
components: {
TtPouringEquipForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.demo.ttsulfequip.entity.TtSulfEquip; import org.jeecg.modules.demo.ttsulfequip.entity.TtSulfEquip;
import org.jeecg.modules.demo.ttsulfequip.service.ITtSulfEquipService; import org.jeecg.modules.demo.ttsulfequip.service.ITtSulfEquipService;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;

@ -35,7 +35,7 @@ public class TtSulfEquip implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**id*/ /**id*/
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
private Integer id; private Integer id;
/**开模日期*/ /**开模日期*/

@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.tteqtbase.entity.TtEqtBase;
import org.jeecg.modules.demo.ttvirsualsortequipsecond.entity.TtVirsualSortEquipSecond; import org.jeecg.modules.demo.ttvirsualsortequipsecond.entity.TtVirsualSortEquipSecond;
import org.jeecg.modules.demo.ttvirsualsortequipsecond.service.ITtVirsualSortEquipSecondService; import org.jeecg.modules.demo.ttvirsualsortequipsecond.service.ITtVirsualSortEquipSecondService;
@ -86,9 +87,10 @@ public class TtVirsualSortEquipSecondController extends JeecgController<TtVirsua
Page<TtVirsualSortEquipSecond> page = new Page<TtVirsualSortEquipSecond>(pageNo, pageSize); Page<TtVirsualSortEquipSecond> page = new Page<TtVirsualSortEquipSecond>(pageNo, pageSize);
IPage<TtVirsualSortEquipSecond> pageList = ttVirsualSortEquipSecondService.page(page, queryWrapper); IPage<TtVirsualSortEquipSecond> pageList = ttVirsualSortEquipSecondService.page(page, queryWrapper);
List<TtVirsualSortEquipSecond> list =pageList.getRecords(); List<TtVirsualSortEquipSecond> list =pageList.getRecords();
for (TtVirsualSortEquipSecond ttVirsualSortEquipSecond1 :list ){ for (TtVirsualSortEquipSecond tt :list ){
ttVirsualSortEquipSecond1.setTypeId(1); QueryWrapper<TtVirsualSortEquipSecond> Second = new QueryWrapper<>();
Second.eq("type_id",1);
TtVirsualSortEquipSecond ttVicond1=ttVirsualSortEquipSecondService.getOne(Second);
} }
return Result.OK(pageList); return Result.OK(pageList);

@ -11634,3 +11634,71 @@ TD.Exception { background: #A2AEE8; font-family: courier, monospace;}
<td class="LineOfCaller">LineOfCaller</td> <td class="LineOfCaller">LineOfCaller</td>
</tr> </tr>
</table>
</body></html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Logback Log Messages</title>
<style type="text/css">
table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }
TR.even { background: #FFFFFF; }
TR.odd { background: #EAEAEA; }
TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }
TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }
TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }
TD.Thread { text-align: left; }
TD.Level { text-align: right; }
TD.Logger { text-align: left; }
TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }
TD.Exception { background: #A2AEE8; font-family: courier, monospace;}
</style>
</head>
<body>
<hr/>
<p>Log session start time Tue Feb 14 17:26:08 CST 2023</p><p></p>
<table cellspacing="0">
<tr class="header">
<td class="Level">Level</td>
<td class="Date">Date</td>
<td class="Message">Message</td>
<td class="MethodOfCaller">MethodOfCaller</td>
<td class="FileOfCaller">FileOfCaller</td>
<td class="LineOfCaller">LineOfCaller</td>
</tr>
</table>
</body></html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Logback Log Messages</title>
<style type="text/css">
table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }
TR.even { background: #FFFFFF; }
TR.odd { background: #EAEAEA; }
TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }
TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }
TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }
TD.Thread { text-align: left; }
TD.Level { text-align: right; }
TD.Logger { text-align: left; }
TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }
TD.Exception { background: #A2AEE8; font-family: courier, monospace;}
</style>
</head>
<body>
<hr/>
<p>Log session start time Tue Feb 14 17:29:03 CST 2023</p><p></p>
<table cellspacing="0">
<tr class="header">
<td class="Level">Level</td>
<td class="Date">Date</td>
<td class="Message">Message</td>
<td class="MethodOfCaller">MethodOfCaller</td>
<td class="FileOfCaller">FileOfCaller</td>
<td class="LineOfCaller">LineOfCaller</td>
</tr>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save