生产计划-计划工序功能添加 12.12

zhc4dev
zhc077 2 years ago
parent 6e6a74bb3c
commit 7a6cb5072f
  1. 605
      ant-design-vue-jeecg/src/views/productplan/ZyPlanProcessAddList.vue
  2. 218
      ant-design-vue-jeecg/src/views/productplan/ZyPlanProcessList.vue
  3. 126
      ant-design-vue-jeecg/src/views/productplan/modules/ZyPlanProcessForm.vue
  4. 107
      ant-design-vue-jeecg/src/views/productplan/modules/ZyPlanProcessForm2.vue
  5. 60
      ant-design-vue-jeecg/src/views/productplan/modules/ZyPlanProcessModal.vue
  6. 60
      ant-design-vue-jeecg/src/views/productplan/modules/ZyPlanProcessModal2.vue
  7. 84
      ant-design-vue-jeecg/src/views/productplan/modules/ZyPlanProcessModal__Style#Drawer.vue
  8. 25
      ant-design-vue-jeecg/src/views/productplan/modules/ZyProductPlanForm.vue
  9. 156
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
  10. 99
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java
  11. 15
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/mapper/ZyPlanProcessMapper.java
  12. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/mapper/xml/ZyPlanProcessMapper.xml
  13. 15
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/IZyPlanProcessService.java
  14. 19
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/impl/ZyPlanProcessServiceImpl.java

@ -0,0 +1,605 @@
<!--<template>-->
<!-- <a-card :bordered="false">-->
<!-- &lt;!&ndash; 查询区域 &ndash;&gt;-->
<!-- <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="学期">-->
<!-- <j-dict-select-tag placeholder="请选择学期" v-model="queryParam.semester" dictCode="se_semester,name,id"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="学院">-->
<!-- <j-select-depart placeholder="请选择学院" v-model="queryParam.faculty"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="专业">-->
<!-- <j-dict-select-tag placeholder="请选择专业" v-model="queryParam.major" dictCode="se_major,name,id"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="课程类别1">-->
<!-- <j-dict-select-tag placeholder="请选择课程类别1" v-model="queryParam.type1" dictCode="course_type1"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="课程类别2">-->
<!-- <j-dict-select-tag placeholder="请选择课程类别2" v-model="queryParam.type2" dictCode="course_type2"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="课程类别3">-->
<!-- <a-input placeholder="请输入课程类别3" v-model="queryParam.type3"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="课程代码">-->
<!-- <a-input placeholder="请输入课程代码" v-model="queryParam.courseCode"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="课程名称">-->
<!-- <j-dict-select-tag placeholder="请选择课程名称" v-model="queryParam.courseName"-->
<!-- dictCode="se_course,name,id"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="教师工号">-->
<!-- <a-input placeholder="请输入教师工号" v-model="queryParam.workNo"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="教师姓名">-->
<!-- <j-select-user-by-dep placeholder="请选择教师姓名" v-model="queryParam.teName"/>-->
<!-- </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>-->
<!-- &lt;!&ndash; <a @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>&ndash;&gt;-->
<!-- </span>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-form>-->
<!-- &lt;!&ndash;=============================王家东添加用于更新课程质量监控===============================================&ndash;&gt;-->
<!-- &lt;!&ndash;-->
<!-- <a-form layout="inline" @keyup.enter.native="dosx">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="学期">-->
<!-- <j-dict-select-tag placeholder="请选择学期" v-model="semester" dictCode="se_semester,name,id"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="专业">-->
<!-- <j-dict-select-tag placeholder="请选择专业" v-model="major" dictCode="se_major,name,id"/>-->
<!-- </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="dosx" 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>-->
<!-- &ndash;&gt;-->
<!-- &lt;!&ndash;============================================================================&ndash;&gt;-->
<!-- </div>-->
<!-- &lt;!&ndash; 查询区域-END &ndash;&gt;-->
<!-- &lt;!&ndash; 操作按钮区域 &ndash;&gt;-->
<!-- &lt;!&ndash; <div class="table-operator">&ndash;&gt;-->
<!-- &lt;!&ndash; <a-button @click="handleAdd" type="primary" icon="plus" v-if="user_name==='admin'">新增</a-button>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-button type="primary" icon="download" @click="handleExportXls('开课任务')" v-if="user_name==='admin'">导出</a-button>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" v-if="user_name==='admin'">&ndash;&gt;-->
<!-- &lt;!&ndash; &lt;!&ndash;<a-button type="primary" icon="import">导入</a-button>&ndash;&gt;&ndash;&gt;-->
<!-- &lt;!&ndash; </a-upload>&ndash;&gt;-->
<!-- &lt;!&ndash; &lt;!&ndash; 高级查询区域 &ndash;&gt;&ndash;&gt;-->
<!-- &lt;!&ndash; <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery" v-if="user_name==='admin'"></j-super-query>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-dropdown v-if="selectedRowKeys.length > 0">&ndash;&gt;-->
<!-- &lt;!&ndash; <a-menu slot="overlay">&ndash;&gt;-->
<!-- &lt;!&ndash; <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-menu>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-dropdown>&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- &lt;!&ndash; table区域-begin &ndash;&gt;-->
<!-- <div>-->
<!-- &lt;!&ndash; <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">&ndash;&gt;-->
<!-- &lt;!&ndash; <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>&ndash;&gt;-->
<!-- &lt;!&ndash; <a style="margin-left: 24px" @click="onClearSelected">清空</a>&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- <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>-->
<!-- &lt;!&ndash; <template slot="imgSlot" slot-scope="text">&ndash;&gt;-->
<!-- &lt;!&ndash; <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>&ndash;&gt;-->
<!-- &lt;!&ndash; <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>&ndash;&gt;-->
<!-- &lt;!&ndash; </template>&ndash;&gt;-->
<!-- &lt;!&ndash; <template slot="fileSlot" slot-scope="text">&ndash;&gt;-->
<!-- &lt;!&ndash; <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-button&ndash;&gt;-->
<!-- &lt;!&ndash; v-else&ndash;&gt;-->
<!-- &lt;!&ndash; :ghost="true"&ndash;&gt;-->
<!-- &lt;!&ndash; type="primary"&ndash;&gt;-->
<!-- &lt;!&ndash; icon="download"&ndash;&gt;-->
<!-- &lt;!&ndash; size="small"&ndash;&gt;-->
<!-- &lt;!&ndash; @click="downloadFile(text)">&ndash;&gt;-->
<!-- &lt;!&ndash; 下载&ndash;&gt;-->
<!-- &lt;!&ndash; </a-button>&ndash;&gt;-->
<!-- &lt;!&ndash; </template>&ndash;&gt;-->
<!-- <span slot="action" slot-scope="text, record">-->
<!-- <a @click="handleEdit(record)" v-if="user_name==='admin'">编辑</a>-->
<!-- </span>-->
<!-- </a-table>-->
<!-- </div>-->
<!-- &lt;!&ndash; <class-opening-task-install-modal ref="classOpeningTaskInstallModal" @ok="modalFormOk"></class-opening-task-install-modal>&ndash;&gt;-->
<!-- &lt;!&ndash; <class-opening-task-modal ref="modalForm" @ok="modalFormOk"></class-opening-task-modal>&ndash;&gt;-->
<!-- &lt;!&ndash; <progress-plan-show ref="pps"></progress-plan-show>&ndash;&gt;-->
<!-- </a-card>-->
<!--</template>-->
<!--<script>-->
<!--import '@/assets/less/TableExpand.less'-->
<!--import {mixinDevice} from '@/utils/mixin'-->
<!--import {JeecgListMixin} from '@/mixins/JeecgListMixin'-->
<!--import ClassOpeningTaskModal from 'src/views/classopeningtask/modules/ClassOpeningTaskModal.vue'-->
<!--import ProgressPlanShow from 'src/views/classopeningtask/ProgressPlanShow.vue'-->
<!--import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'-->
<!--import ClassOpeningTaskInstallModal from "src/views/classopeningtask/modules/ClassOpeningTaskInstallModal.vue";-->
<!--import Vue from 'vue'-->
<!--import {USER_INFO} from "@/store/mutation-types"-->
<!--import {getAction} from '@/api/manage'-->
<!--export default {-->
<!-- name: 'ClassOpeningTaskList',-->
<!-- mixins: [JeecgListMixin, mixinDevice],-->
<!-- // components: {-->
<!-- // ClassOpeningTaskInstallModal,-->
<!-- // ClassOpeningTaskModal,-->
<!-- // ProgressPlanShow-->
<!-- // },-->
<!-- data() {-->
<!-- return {-->
<!-- description: '开课任务管理页面',-->
<!-- // -->
<!-- columns: [-->
<!-- {-->
<!-- title: '学期',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '90px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'semester_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '学院',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '60px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'faculty_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '专业',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '60px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'major_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '年级',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '50px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'year_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '班级',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '40px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'classId_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '人数',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'number'-->
<!-- },-->
<!-- {-->
<!-- title: '类别1',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'type1_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '类别2',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'type2_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '类别3',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'type3'-->
<!-- },-->
<!-- {-->
<!-- title: '课程代码',-->
<!-- align: "center",-->
<!-- dataIndex: 'courseCode'-->
<!-- },-->
<!-- {-->
<!-- title: '课程名称',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'courseName_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '学分',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'credit'-->
<!-- },-->
<!-- {-->
<!-- title: '学年',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'schoolYear'-->
<!-- },-->
<!-- {-->
<!-- title: '学期',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'openingSemester_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '教师工号',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'workNo'-->
<!-- },-->
<!-- {-->
<!-- title: '教师姓名',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'teName_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '理论周学时',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'theoryWeekPeriod'-->
<!-- },-->
<!-- {-->
<!-- title: '上课周数',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'classWeeks'-->
<!-- },-->
<!-- {-->
<!-- title: '理论学时',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'theoryPeriod'-->
<!-- },-->
<!-- {-->
<!-- title: '实验学时',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'experimentPeriod'-->
<!-- },-->
<!-- {-->
<!-- title: '实践学时',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'practicePeriod'-->
<!-- },-->
<!-- {-->
<!-- title: '总学时',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'period'-->
<!-- },-->
<!-- {-->
<!-- title: '承担院系',-->
<!-- align: "center",-->
<!-- customCell: () => {-->
<!-- return {-->
<!-- style: {-->
<!-- 'max-width': '10px',-->
<!-- 'white-space': 'normal',-->
<!-- },-->
<!-- };-->
<!-- },-->
<!-- dataIndex: 'responsibleDepartments_dictText'-->
<!-- },-->
<!-- {-->
<!-- title: '操作',-->
<!-- dataIndex: 'action',-->
<!-- align: "center",-->
<!-- fixed: "right",-->
<!-- width: 80,-->
<!-- scopedSlots: {customRender: 'action'}-->
<!-- }-->
<!-- ],-->
<!-- url: {-->
<!-- list: "/classopeningtask/classOpeningTask/list",-->
<!-- delete: "/classopeningtask/classOpeningTask/delete",-->
<!-- deleteBatch: "/classopeningtask/classOpeningTask/deleteBatch",-->
<!-- exportXlsUrl: "/classopeningtask/classOpeningTask/exportXls",-->
<!-- importExcelUrl: "classopeningtask/classOpeningTask/importExcel",-->
<!-- dosx: "/classopeningtask/classOpeningTask/dosx"-->
<!-- },-->
<!-- dictOptions: {},-->
<!-- superFieldList: [],-->
<!-- user_name: '',-->
<!-- }-->
<!-- },-->
<!-- created() {-->
<!-- this.getSuperFieldList();-->
<!-- this.user_name = Vue.ls.get(USER_INFO).username;-->
<!-- },-->
<!-- computed: {-->
<!-- importExcelUrl: function () {-->
<!-- return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;-->
<!-- },-->
<!-- },-->
<!-- methods: {-->
<!-- dosx() {-->
<!-- getAction(this.url.dosx, {xq: this.semester, zy: this.major}).then((res) => {-->
<!-- if (res.success) {-->
<!-- this.$message.success(res.message);-->
<!-- this.loadData();-->
<!-- } else {-->
<!-- this.$message.warning(res.message);-->
<!-- }-->
<!-- });-->
<!-- },-->
<!-- initDictConfig() {-->
<!-- },-->
<!-- show(record) {-->
<!-- this.$refs.pps.edit(record);-->
<!-- this.$refs.pps.title = "查看";-->
<!-- this.$refs.pps.disableSubmit = true;-->
<!-- },-->
<!-- openInstall(id) {-->
<!-- this.$refs.classOpeningTaskInstallModal.showModal(id);-->
<!-- // this.$children[0].showModal(id)-->
<!-- },-->
<!-- getSuperFieldList() {-->
<!-- let fieldList = [];-->
<!-- fieldList.push({-->
<!-- type: 'string',-->
<!-- value: 'semesterOpeningPlanId',-->
<!-- text: '学期开课计划',-->
<!-- dictCode: 'semester_opening_plan,name,id'-->
<!-- })-->
<!-- fieldList.push({-->
<!-- type: 'popup',-->
<!-- value: 'coursePlanListName',-->
<!-- text: '开课计划课程',-->
<!-- popup: {-->
<!-- code: 'course_plan',-->
<!-- field: 'course_name',-->
<!-- orgFields: 'course_name',-->
<!-- destFields: 'course_plan_list_name'-->
<!-- }-->
<!-- })-->
<!-- fieldList.push({type: 'string', value: 'semester', text: '学期', dictCode: 'se_semester,name,id'})-->
<!-- fieldList.push({type: 'sel_depart', value: 'faculty', text: '学院'})-->
<!-- fieldList.push({type: 'string', value: 'major', text: '专业', dictCode: 'se_major,name,id'})-->
<!-- fieldList.push({type: 'string', value: 'year', text: '年级', dictCode: 'class_year'})-->
<!-- fieldList.push({-->
<!-- type: 'list_multi',-->
<!-- value: 'classId',-->
<!-- text: '班级',-->
<!-- dictTable: 'jx_class',-->
<!-- dictText: 'class_name',-->
<!-- dictCode: 'id'-->
<!-- })-->
<!-- fieldList.push({type: 'string', value: 'number', text: '人数', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'type1', text: '课程类别1', dictCode: 'coursecategory'})-->
<!-- fieldList.push({type: 'string', value: 'type2', text: '课程类别2', dictCode: 'se_nature,content,id'})-->
<!-- fieldList.push({type: 'string', value: 'type3', text: '课程类别3', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'courseCode', text: '课程代码', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'courseName', text: '课程名称', dictCode: 'se_course,name,id'})-->
<!-- fieldList.push({type: 'string', value: 'credit', text: '学分', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'schoolYear', text: '开课学年', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'openingSemester', text: '开课学期', dictCode: 'open_semester'})-->
<!-- fieldList.push({type: 'string', value: 'workNo', text: '教师工号', dictCode: ''})-->
<!-- fieldList.push({type: 'sel_user', value: 'teName', text: '教师姓名'})-->
<!-- fieldList.push({type: 'string', value: 'theoryWeekPeriod', text: '理论周学时', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'classWeeks', text: '上课周数', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'theoryPeriod', text: '理论学时', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'experimentPeriod', text: '实验或上机学时', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'practicePeriod', text: '实践学时', dictCode: ''})-->
<!-- fieldList.push({type: 'string', value: 'period', text: '总学时', dictCode: ''})-->
<!-- fieldList.push({type: 'sel_depart', value: 'responsibleDepartments', text: '承担院系'})-->
<!-- this.superFieldList = fieldList-->
<!-- }-->
<!-- }-->
<!--}-->
<!--</script>-->
<!--<style scoped>-->
<!--@import '~@assets/less/common.less';-->
<!--</style>-->

@ -0,0 +1,218 @@
<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('生产计划工序')">导出</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">
<!-- <span slot="action1" slot-scope="text, record">-->
<!-- <a @click="jumpPage1(record)">班组成员管理</a>-->
<!-- &lt;!&ndash; <a-divider type="vertical"/>&ndash;&gt;-->
<!-- &lt;!&ndash; <a @click="jumpPage2(record)">工位工具管理</a>&ndash;&gt;-->
<!-- </span>-->
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="handleDetail(record)">详情</a>-->
<a-divider type="vertical"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
</a-popconfirm>
<a-divider type="vertical"/>
<a @click="pf(record)">制定计划详情</a>
</span>
</a-table>
</div>
<zy-plan-process-modal ref="modalForm" @ok="modalFormOk"></zy-plan-process-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ZyPlanProcessModal from './modules/ZyPlanProcessModal2'
export default {
name: 'ZyPlanProcessList',
mixins: [JeecgListMixin, mixinDevice],
components: {
ZyPlanProcessModal
},
data() {
return {
description: '生产计划工序管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: "center",
customRender: function (t, r, index) {
return parseInt(index) + 1;
}
},
{
title: '生产计划id',
align: "center",
dataIndex: 'planId'
}, {
title: '工位id',
align: "center",
dataIndex: 'stationId'
},
{
title: '设备id列表',
align: "center",
dataIndex: 'machineIds'
},
{
title: '工具id列表',
align: "center",
dataIndex: 'toolsIds'
},
{
title: '工序id列表',
align: "center",
dataIndex: 'processIds'
},
{
title: '成员id列表',
align: "center",
dataIndex: 'userIds'
},
{
title: '计划工序',
dataIndex: 'action1',
align: "center",
// fixed: "right",
width: 80,
scopedSlots: {customRender: 'action1'}
},
{
title: '操作',
dataIndex: 'action',
align: "center",
fixed: "right",
width: 147,
scopedSlots: {customRender: 'action'}
}
],
url: {
list: "/org.jeecg.modules.productplan/zyPlanProcess/list",
productPlanlist: "/org.jeecg.modules.productplan/zyProductPlan/list",
delete: "/org.jeecg.modules.productplan/zyPlanProcess/delete",
deleteBatch: "/org.jeecg.modules.productplan/zyPlanProcess/deleteBatch",
exportXlsUrl: "/org.jeecg.modules.productplan/zyPlanProcess/exportXls",
importExcelUrl: "org.jeecg.modules.productplan/zyPlanProcess/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: 'planId', text: '生产计划id', dictCode: ''})
fieldList.push({type: 'string', value: 'stationId', text: '工位id', dictCode: ''})
fieldList.push({type: 'string', value: 'machineIds', text: '设备id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'toolsIds', text: '工具id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'processIds', text: '工序id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'userIds', text: '成员id列表', dictCode: ''})
this.superFieldList = fieldList
},
jumpPage1(record) {
this.$router.push({
path: '/productplan/ZyPlanProcessAddList',
// query: { //
// 'stationId': record.id,
// 'stationName': record.stationName,
// },
});
},
pf(record) {
getAction("productPlanlist", {id: record.id}).then((res) => {
if (res.success) {
this.$router.push({
path: '/src/views/processassessment/assessmentCourse/ClassOpeningTaskList',
query: { //
}
});
} else {
this.$message.error(res.message)
}
});
},
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -0,0 +1,126 @@
<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="生产计划id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planId">
<a-input v-model="model.planId" placeholder="请选择生产计划"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工位id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="stationId">
<a-input v-model="model.stationId" placeholder="请输入工位id"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="设备id列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="machineIds">
<a-input v-model="model.machineIds" placeholder="请输入设备id列表"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工具id列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toolsIds">
<a-input v-model="model.toolsIds" placeholder="请输入工具id列表"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工序id列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processIds">
<a-input v-model="model.processIds" placeholder="请输入工序id列表"></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="成员id列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userIds">
<a-input v-model="model.userIds" placeholder="请输入成员id列表"></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: 'ZyPlanProcessForm',
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: {},
url: {
add: "/org.jeecg.modules.productplan/zyPlanProcess/add",
edit: "/org.jeecg.modules.productplan/zyPlanProcess/edit",
queryById: "/org.jeecg.modules.productplan/zyPlanProcess/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,107 @@
<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="planId">
<!-- <a-input v-model="model.planId" placeholder="请选择生产计划"></a-input>-->
<j-dict-select-tag type="list" v-model="model.planId" dictCode="zy_product_plan,id,id"
placeholder="请选择生产计划"/>
</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: 'ZyPlanProcessForm',
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: {
planId: [
{required: true},
],
},
url: {
add: "/org.jeecg.modules.productplan/zyPlanProcess/add",
edit: "/org.jeecg.modules.productplan/zyPlanProcess/edit",
queryById: "/org.jeecg.modules.productplan/zyPlanProcess/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,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<zy-plan-process-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></zy-plan-process-form>
</j-modal>
</template>
<script>
import ZyPlanProcessForm from './ZyPlanProcessForm'
export default {
name: 'ZyPlanProcessModal',
components: {
ZyPlanProcessForm
},
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,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<zy-plan-process-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></zy-plan-process-form>
</j-modal>
</template>
<script>
import ZyPlanProcessForm from './ZyPlanProcessForm2'
export default {
name: 'ZyPlanProcessModal',
components: {
ZyPlanProcessForm
},
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,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<zy-plan-process-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></zy-plan-process-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 ZyPlanProcessForm from './ZyPlanProcessForm'
export default {
name: 'ZyPlanProcessModal',
components: {
ZyPlanProcessForm
},
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>

@ -8,7 +8,8 @@
<!-- <a-input v-model="model.productCode" placeholder="请输入工单编号" ></a-input>--> <!-- <a-input v-model="model.productCode" placeholder="请输入工单编号" ></a-input>-->
<!-- </a-form-model-item>--> <!-- </a-form-model-item>-->
<a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId"> <a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId">
<j-dict-select-tag type="list" v-model="model.productCode" dictCode="work_order,work_id,work_code,work_order_status='0'" <j-dict-select-tag type="list" v-model="model.productCode"
dictCode="work_order,work_id,work_code,work_order_status='0'"
placeholder="请选择工单编号"/> placeholder="请选择工单编号"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
@ -30,14 +31,16 @@
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="班组" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamId"> <a-form-model-item label="班组" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamId">
<j-dict-select-tag type="list" v-model="model.teamId" <j-dict-select-tag type="list" v-model="model.teamId"
placeholder="请先选择所属车间班组" :dict-code="groupxVal" :disabled="model.workshopId==null"/> placeholder="请先选择所属车间班组" :dict-code="groupxVal"
:disabled="model.workshopId==null"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="组长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamLeader"> <a-form-model-item label="组长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamLeader">
<!-- <a-input v-model="model.teamLeader" placeholder="请输入组长"></a-input>--> <!-- <a-input v-model="model.teamLeader" placeholder="请输入组长"></a-input>-->
<j-dict-select-tag type="list" v-model="model.teamLeader" <j-dict-select-tag type="list" v-model="model.teamLeader"
placeholder="请先选择所属车间班组" :dict-code="groupxVal2" :disabled="model.workshopId==null"/> placeholder="请先选择所属车间班组" :dict-code="groupxVal2"
:disabled="model.workshopId==null"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -80,13 +83,12 @@
<script> <script>
import { httpAction, getAction } from '@/api/manage' import {httpAction, getAction} from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util' import {validateDuplicateValue} from '@/utils/util'
export default { export default {
name: 'ZyProductPlanForm', name: 'ZyProductPlanForm',
components: { components: {},
},
props: { props: {
// //
disabled: { disabled: {
@ -110,8 +112,13 @@ export default {
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
productCode: [ workOrderId: [
{required: true, message: '请输入工单编号!'}, {required: true,},
],
workshopId: [
{required: true,},
], teamId: [
{required: true,},
], ],
}, },
url: { url: {

@ -0,0 +1,156 @@
package org.jeecg.modules.productplan.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Version: V1.0
*/
@Api(tags = "生产计划工序")
@RestController
@RequestMapping("/org.jeecg.modules.productplan/zyPlanProcess")
@Slf4j
public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyPlanProcessService> {
@Autowired
private IZyPlanProcessService zyPlanProcessService;
/**
* 分页列表查询
*
* @param zyPlanProcess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "生产计划工序-分页列表查询")
@ApiOperation(value = "生产计划工序-分页列表查询", notes = "生产计划工序-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(ZyPlanProcess zyPlanProcess,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ZyPlanProcess> queryWrapper = QueryGenerator.initQueryWrapper(zyPlanProcess, req.getParameterMap());
Page<ZyPlanProcess> page = new Page<ZyPlanProcess>(pageNo, pageSize);
IPage<ZyPlanProcess> pageList = zyPlanProcessService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param zyPlanProcess
* @return
*/
@AutoLog(value = "生产计划工序-添加")
@ApiOperation(value = "生产计划工序-添加", notes = "生产计划工序-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody ZyPlanProcess zyPlanProcess) {
zyPlanProcessService.save(zyPlanProcess);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param zyPlanProcess
* @return
*/
@AutoLog(value = "生产计划工序-编辑")
@ApiOperation(value = "生产计划工序-编辑", notes = "生产计划工序-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@RequestBody ZyPlanProcess zyPlanProcess) {
zyPlanProcessService.updateById(zyPlanProcess);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "生产计划工序-通过id删除")
@ApiOperation(value = "生产计划工序-通过id删除", notes = "生产计划工序-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
zyPlanProcessService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "生产计划工序-批量删除")
@ApiOperation(value = "生产计划工序-批量删除", notes = "生产计划工序-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.zyPlanProcessService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "生产计划工序-通过id查询")
@ApiOperation(value = "生产计划工序-通过id查询", notes = "生产计划工序-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
ZyPlanProcess zyPlanProcess = zyPlanProcessService.getById(id);
if (zyPlanProcess == null) {
return Result.error("未找到对应数据");
}
return Result.OK(zyPlanProcess);
}
/**
* 导出excel
*
* @param request
* @param zyPlanProcess
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ZyPlanProcess zyPlanProcess) {
return super.exportXls(request, zyPlanProcess, ZyPlanProcess.class, "生产计划工序");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ZyPlanProcess.class);
}
}

@ -0,0 +1,99 @@
package org.jeecg.modules.productplan.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Version: V1.0
*/
@Data
@TableName("zy_plan_process")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "zy_plan_process对象", description = "生产计划工序")
public class ZyPlanProcess implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**
* 生产计划id
*/
@Excel(name = "生产计划id", width = 15)
@ApiModelProperty(value = "生产计划id")
private String planId;
/**
* 工位id
*/
@Excel(name = "工位id", width = 15)
@ApiModelProperty(value = "工位id")
private String stationId;
/**
* 设备id列表
*/
@Excel(name = "设备id列表", width = 15)
@ApiModelProperty(value = "设备id列表")
private String machineIds;
/**
* 工具id列表
*/
@Excel(name = "工具id列表", width = 15)
@ApiModelProperty(value = "工具id列表")
private String toolsIds;
/**
* 工序id列表
*/
@Excel(name = "工序id列表", width = 15)
@ApiModelProperty(value = "工序id列表")
private String processIds;
/**
* 成员id列表
*/
@Excel(name = "成员id列表", width = 15)
@ApiModelProperty(value = "成员id列表")
private String userIds;
}

@ -0,0 +1,15 @@
package org.jeecg.modules.productplan.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Version: V1.0
*/
public interface ZyPlanProcessMapper extends BaseMapper<ZyPlanProcess> {
}

@ -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.productplan.mapper.ZyPlanProcessMapper">
</mapper>

@ -0,0 +1,15 @@
package org.jeecg.modules.productplan.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Version: V1.0
*/
public interface IZyPlanProcessService extends IService<ZyPlanProcess> {
}

@ -0,0 +1,19 @@
package org.jeecg.modules.productplan.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.mapper.ZyPlanProcessMapper;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.springframework.stereotype.Service;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Version: V1.0
*/
@Service
public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, ZyPlanProcess> implements IZyPlanProcessService {
}
Loading…
Cancel
Save