Merge remote-tracking branch 'origin/master'

zhc4dev
赵玉瑞 2 years ago
commit 2c7ba63eca
  1. 33
      ant-design-vue-jeecg/public/index.html
  2. 10
      ant-design-vue-jeecg/src/views/erp/accessories/ZyAccessoriesList.vue
  3. 528
      ant-design-vue-jeecg/src/views/erp/tool/ZyToolListRef.vue
  4. 18
      ant-design-vue-jeecg/src/views/hanger/HangerList.vue
  5. 4
      ant-design-vue-jeecg/src/views/jeecg/SelectDemo.vue
  6. 14
      ant-design-vue-jeecg/src/views/process/modules/ZyProcessAccessoriesList.vue
  7. 12
      ant-design-vue-jeecg/src/views/process/modules/ZyProcessActionList.vue
  8. 12
      ant-design-vue-jeecg/src/views/process/modules/ZyProcessFabricList.vue
  9. 36
      ant-design-vue-jeecg/src/views/process/modules/ZyProcessForm.vue
  10. 32
      ant-design-vue-jeecg/src/views/product/pdaccessories/ProductAccessoriesList.vue
  11. 25
      ant-design-vue-jeecg/src/views/product/pdfabric/ProductFabricList.vue
  12. 9
      ant-design-vue-jeecg/src/views/product/pdmachine/ProductMachineList.vue
  13. 13
      ant-design-vue-jeecg/src/views/product/pdoperationtool/ProductOperationtoolList.vue
  14. 30
      ant-design-vue-jeecg/src/views/product/productProcess/ZyProductProcessList.vue
  15. 110
      ant-design-vue-jeecg/src/views/productplan/ZyPlanProcessDataList.vue
  16. 149
      ant-design-vue-jeecg/src/views/productplan/ZyPlanProcessList.vue
  17. 297
      ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue
  18. 105
      ant-design-vue-jeecg/src/views/productplan/modules/ZyProductPlanForm.vue
  19. 115
      ant-design-vue-jeecg/src/views/system/Depart3List.vue
  20. 57
      ant-design-vue-jeecg/src/views/system/modules/DepartModal.vue
  21. 7
      ant-design-vue-jeecg/src/views/team/GroupxMemberList.vue
  22. 6
      ant-design-vue-jeecg/src/views/team/StationList.vue
  23. 53
      ant-design-vue-jeecg/src/views/team/StationMachineList.vue
  24. 53
      ant-design-vue-jeecg/src/views/team/StationToolList.vue
  25. 18
      ant-design-vue-jeecg/src/views/team/modules/GroupxModal.vue
  26. 35
      ant-design-vue-jeecg/src/views/team/modules/StationModal.vue
  27. 2
      ant-design-vue-jeecg/src/views/team/modules/StationToolModal.vue
  28. 137
      ant-design-vue-jeecg/src/views/tool/tool/ZyToolListRef.vue
  29. 60
      ant-design-vue-jeecg/src/views/zyWorkProduct/ZyProductList.vue
  30. 299
      ant-design-vue-jeecg/src/views/zyWorkorderManagement/ZyProductionOrderList.vue
  31. 84
      ant-design-vue-jeecg/src/views/zyWorkorderManagement/ZyWorkOrderList.vue
  32. 5
      ant-design-vue-jeecg/src/views/zyWorkorderManagement/workdep/JSelectProductionDep.vue
  33. 10
      ant-design-vue-jeecg/src/views/zyclothsample/modules/ZyClothSampleForm.vue
  34. 6
      jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/accessories/entity/ZyAccessories.java
  35. 4
      jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/fabric/controller/ZyFabricController.java
  36. 12
      jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/fabric/entity/ZyFabric.java
  37. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java
  38. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/pdcomponentprocess/entity/ProductComponentProcess.java
  39. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/pdmodulecomponent/entity/ProductModuleComponent.java
  40. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/pdmoduleprocess/entity/ProductModuleProcess.java
  41. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/pdaccessories/entity/ProductAccessories.java
  42. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/pdfabric/entity/ProductFabric.java
  43. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/pdmachine/entity/ProductMachine.java
  44. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/pdoperationtool/entity/ProductOperationtool.java
  45. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/zyproductprocess/entity/ZyProductProcess.java
  46. 24
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
  47. 39
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java
  48. 18
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java
  49. 12
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyProductPlan.java
  50. 31
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/PaiWeiTuVo.java
  51. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/ProcessDataVo.java
  52. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/IZyPlanProcessService.java
  53. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/IZyProductPlanService.java
  54. 108
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/impl/ZyPlanProcessServiceImpl.java
  55. 94
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/impl/ZyProductPlanServiceImpl.java
  56. 18
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java
  57. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/team/controller/StationToolController.java
  58. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/team/entity/StationTool.java
  59. 34
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/team/service/impl/StationServiceImpl.java
  60. 24
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/controller/WorkOrderController.java
  61. 115
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/entity/WorkOrderVo.java
  62. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/mapper/WorkOrderMapper.java
  63. 34
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/mapper/xml/WorkOrderMapper.xml
  64. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/service/IWorkOrderService.java
  65. 13
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/service/impl/WorkOrderServiceImpl.java
  66. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workproduct/entity/ZyProduct.java

@ -8,6 +8,12 @@
<title>黄淮学院服装智能制造管理平台</title>
<link rel="icon" href="<%= BASE_URL %>logohuanghuai.png">
<script src="<%= BASE_URL %>cdn/babel-polyfill/polyfill_7_2_5.js"></script>
<!--<script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/vuex/3.1.0/vuex.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/element-ui/2.6.1/index.js"></script>-->
<style>
html,
body,
@ -268,7 +274,7 @@
<!-- 全局配置 -->
<script>
window._CONFIG = {};
window._CONFIG['domianURL'] = 'http://localhost:8081/jeecg-boot';
window._CONFIG['domianURL'] = 'http://localhost:10085/jeecg-boot';
window._CONFIG['casPrefixUrl'] = 'http://cas.example.org:8443/cas';
window._CONFIG['imgDomainURL'] = window._CONFIG['domianURL'] + '/sys/common/view';
window._CONFIG['downloadUrl'] = window._CONFIG['domianURL'] + '/sys/common/download';
@ -278,11 +284,28 @@
<body>
<div id="app">
<!--<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.1.6/vue-router.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js"></script>-->
<!--<link href="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.css" rel="stylesheet">-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/locale/zh-cn.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/vuex/3.1.2/vuex.min.js"></script>-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.js"></script>-->
<!--<link href="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.css" rel="stylesheet">-->
<!--<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0-rc.1/echarts.min.js"></script>-->
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载 服装智能制造软件平台V3.0,请耐心等待
<!--<div id="loader"></div>-->
<!--<div class="loader-section section-left"></div>-->
<!--<div class="loader-section section-right"></div>-->
<!--<div class="load_title">正在加载 服装智能制造软件平台V3.0,请耐心等待-->
</div>
</div>

@ -165,11 +165,11 @@
align:"center",
dataIndex: 'specs'
},
{
title:'库存量',
align:"center",
dataIndex: 'store'
},
// {
// title:'',
// align:"center",
// dataIndex: 'store'
// },
{
title:'供货商信息',
align:"center",

@ -1,276 +1,276 @@
<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 :sm="5">
<a-form-model-item label="工具编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="id">
<a-input v-model="queryParam.id" placeholder="请输入工具编号"></a-input>
</a-form-model-item>
</a-col>
<a-col :sm="5">
<a-form-model-item label="工具名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="queryParam.name" placeholder="请输入工具名称"></a-input>
</a-form-model-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>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<!-- <div class="table-operator">-->
<!-- &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<!--<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 :sm="5">-->
<!-- <a-form-model-item label="工具编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code">-->
<!-- <a-input v-model="queryParam.code" placeholder="请输入工具编号"></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :sm="5">-->
<!-- <a-form-model-item label="工具名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">-->
<!-- <a-input v-model="queryParam.name" placeholder="请输入工具名称"></a-input>-->
<!-- </a-form-model-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>-->
<!-- </span>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-form>-->
<!-- </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>
<!-- &lt;!&ndash; 操作按钮区域 &ndash;&gt;-->
<!--&lt;!&ndash; <div class="table-operator">&ndash;&gt;-->
<!--&lt;!&ndash; &lt;!&ndash; 高级查询区域 &ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- &lt;!&ndash; table区域-begin &ndash;&gt;-->
<!-- <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"
bordered
rowKey="id"
class="j-table-force-nowrap"
:scroll="{x:true}"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
:customRow="clickThenSelect"
@change="handleTableChange">
<!-- <a-table-->
<!-- ref="table"-->
<!-- size="middle"-->
<!-- bordered-->
<!-- rowKey="id"-->
<!-- class="j-table-force-nowrap"-->
<!-- :scroll="{x:true}"-->
<!-- :columns="columns"-->
<!-- :dataSource="dataSource"-->
<!-- :pagination="ipagination"-->
<!-- :loading="loading"-->
<!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"-->
<!-- :customRow="clickThenSelect"-->
<!-- @change="handleTableChange">-->
<!-- <template slot="htmlSlot" slot-scope="text">-->
<!-- <div v-html="text"></div>-->
<!-- </template>-->
<!-- <template slot="imgSlot" slot-scope="text">-->
<!-- <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>-->
<!-- <img v-else :src="getImgView(text)" 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>-->
<!-- &lt;!&ndash; <template slot="htmlSlot" slot-scope="text">&ndash;&gt;-->
<!-- &lt;!&ndash; <div v-html="text"></div>&ndash;&gt;-->
<!-- &lt;!&ndash; </template>&ndash;&gt;-->
<!-- &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)">编辑</a>-->
<!-- &lt;!&ndash; <span slot="action" slot-scope="text, record">&ndash;&gt;-->
<!-- &lt;!&ndash; <a @click="handleEdit(record)">编辑</a>&ndash;&gt;-->
<!-- <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>-->
<!-- &lt;!&ndash; <a-divider type="vertical" />&ndash;&gt;-->
<!-- &lt;!&ndash; <a-dropdown>&ndash;&gt;-->
<!-- &lt;!&ndash; <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-menu slot="overlay">&ndash;&gt;-->
<!-- &lt;!&ndash; <a-menu-item>&ndash;&gt;-->
<!-- &lt;!&ndash; <a @click="handleDetail(record)">详情</a>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-menu-item>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-menu-item>&ndash;&gt;-->
<!-- &lt;!&ndash; <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">&ndash;&gt;-->
<!-- &lt;!&ndash; <a>删除</a>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-popconfirm>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-menu-item>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-menu>&ndash;&gt;-->
<!-- &lt;!&ndash; </a-dropdown>&ndash;&gt;-->
<!-- &lt;!&ndash; </span>&ndash;&gt;-->
</a-table>
</div>
<!-- </a-table>-->
<!-- </div>-->
<!-- <zy-tool-modal ref="modalForm" @ok="modalFormOk"></zy-tool-modal>-->
</a-card>
</template>
<!-- &lt;!&ndash; <zy-tool-modal ref="modalForm" @ok="modalFormOk"></zy-tool-modal>&ndash;&gt;-->
<!-- </a-card>-->
<!--</template>-->
<script>
<!--<script>-->
import '@/assets/less/TableExpand.less'
// import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import {getAction} from "@api/manage";
// import ZyToolModal from './modules/ZyToolModal'
<!--import '@/assets/less/TableExpand.less'-->
<!--// import {mixinDevice} from '@/utils/mixin'-->
<!--import {JeecgListMixin} from '@/mixins/JeecgListMixin'-->
<!--import {getAction} from "@api/manage";-->
<!--// import ZyToolModal from './modules/ZyToolModal'-->
export default {
name: 'ZyToolList',
mixins: [JeecgListMixin],
components: {
// ZyToolModal
},
data() {
return {
description: 'zy_tool管理页面',
//
columns: [
// {
// title: '#',
// dataIndex: '',
// key:'rowIndex',
// width:60,
// align:"center",
// customRender:function (t,r,index) {
// return parseInt(index)+1;
// }
// },
{
title: '工具编号',
align: "center",
dataIndex: 'id'
},
{
title: '工具名称',
align: "center",
dataIndex: 'name'
},
{
title: '功能',
align: "center",
dataIndex: 'function'
},
{
title: '规格',
align: "center",
dataIndex: 'specs'
},
// {
// title:'',
// align:"center",
// dataIndex: 'scope'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'workshopSection'
// },
// {
// title:' ( 0 1 2 3 4 )',
// align:"center",
// dataIndex: 'status'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'qrode'
// },
// {
// title: '',
// dataIndex: 'action',
// align:"center",
// fixed:"right",
// width:147,
// scopedSlots: { customRender: 'action' }
// }
],
url: {
list: "/tool/zyTool/list",
delete: "/tool/zyTool/delete",
deleteBatch: "/tool/zyTool/deleteBatch",
exportXlsUrl: "/tool/zyTool/exportXls",
importExcelUrl: "tool/zyTool/importExcel",
<!--export default {-->
<!-- name: 'ZyToolList',-->
<!-- mixins: [JeecgListMixin],-->
<!-- components: {-->
<!-- // ZyToolModal-->
<!-- },-->
<!-- data() {-->
<!-- return {-->
<!-- description: 'zy_tool管理页面',-->
<!-- // -->
<!-- columns: [-->
<!-- // {-->
<!-- // title: '#',-->
<!-- // dataIndex: '',-->
<!-- // key:'rowIndex',-->
<!-- // width:60,-->
<!-- // align:"center",-->
<!-- // customRender:function (t,r,index) {-->
<!-- // return parseInt(index)+1;-->
<!-- // }-->
<!-- // },-->
<!-- {-->
<!-- title: '工具编号',-->
<!-- align: "center",-->
<!-- dataIndex: 'code'-->
<!-- },-->
<!-- {-->
<!-- title: '工具名称',-->
<!-- align: "center",-->
<!-- dataIndex: 'name'-->
<!-- },-->
<!-- {-->
<!-- title: '功能',-->
<!-- align: "center",-->
<!-- dataIndex: 'function'-->
<!-- },-->
<!-- {-->
<!-- title: '规格',-->
<!-- align: "center",-->
<!-- dataIndex: 'specs'-->
<!-- },-->
<!-- // {-->
<!-- // title:'',-->
<!-- // align:"center",-->
<!-- // dataIndex: 'scope'-->
<!-- // },-->
<!-- // {-->
<!-- // title:'',-->
<!-- // align:"center",-->
<!-- // dataIndex: 'workshopSection'-->
<!-- // },-->
<!-- // {-->
<!-- // title:' ( 0 1 2 3 4 )',-->
<!-- // align:"center",-->
<!-- // dataIndex: 'status'-->
<!-- // },-->
<!-- // {-->
<!-- // title:'',-->
<!-- // align:"center",-->
<!-- // dataIndex: 'qrode'-->
<!-- // },-->
<!-- // {-->
<!-- // title: '',-->
<!-- // dataIndex: 'action',-->
<!-- // align:"center",-->
<!-- // fixed:"right",-->
<!-- // width:147,-->
<!-- // scopedSlots: { customRender: 'action' }-->
<!-- // }-->
<!-- ],-->
<!-- url: {-->
<!-- list: "/tool/zyTool/list",-->
<!-- delete: "/tool/zyTool/delete",-->
<!-- deleteBatch: "/tool/zyTool/deleteBatch",-->
<!-- exportXlsUrl: "/tool/zyTool/exportXls",-->
<!-- importExcelUrl: "tool/zyTool/importExcel",-->
},
dictOptions:{
},
/* 分页参数 */
ipagination:{
current: 1,
pageSize: 5,
pageSizeOptions: ['5', '10', '50'],
showTotal: (total, range) => {
return range[0] + "-" + range[1] + " 共" + total + "条"
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
selectedMainId:'',
superFieldList:[],
selectedRowKeys: [],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function () {
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
clickThenSelect(record) {
return {
on: {
click: () => {
this.onSelectChange(record.id.split(","), [record]);
}
}
}
},
onClearSelected() {
this.selectedRowKeys = [];
this.selectionRows = [];
this.selectedMainId=''
},
onSelectChange(selectedRowKeys) {
console.log('selectedRowKeys changed: ', selectedRowKeys);
this.selectedRowKeys = selectedRowKeys;
},
initDictConfig() {
},
loadData(arg) {
if(!this.url.list){
this.$message.error("请设置url.list属性!")
return
}
// 1
if (arg === 1) {
this.ipagination.current = 1;
}
this.onClearSelected()
var params = this.getQueryParams();//
this.loading = true;
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.records;
this.ipagination.total = res.result.total;
}
if(res.code===510){
this.$message.warning(res.message)
}
this.loading = false;
})
},
getSuperFieldList() {
let fieldList = [];
fieldList.push({type: 'string', value: 'name', text: '工具名称'})
fieldList.push({type: 'string', value: 'nums', text: '工具编号'})
fieldList.push({type: 'string', value: 'function', text: '功能'})
fieldList.push({type: 'string', value: 'specs', text: '规格'})
fieldList.push({type: 'string', value: 'scope', text: '适用范围'})
fieldList.push({type: 'string', value: 'workshopSection', text: '责人工段'})
fieldList.push({type: 'string', value: 'status', text: '状态 ( 0 在库、1 在用、2 遗失 、3 损坏、4 报废)'})
fieldList.push({type: 'string', value: 'qrode', text: '二维码'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
<!-- },-->
<!-- dictOptions:{-->
<!-- },-->
<!-- /* 分页参数 */-->
<!-- ipagination:{-->
<!-- current: 1,-->
<!-- pageSize: 5,-->
<!-- pageSizeOptions: ['5', '10', '50'],-->
<!-- showTotal: (total, range) => {-->
<!-- return range[0] + "-" + range[1] + " 共" + total + "条"-->
<!-- },-->
<!-- showQuickJumper: true,-->
<!-- showSizeChanger: true,-->
<!-- total: 0-->
<!-- },-->
<!-- selectedMainId:'',-->
<!-- superFieldList:[],-->
<!-- selectedRowKeys: [],-->
<!-- }-->
<!-- },-->
<!-- created() {-->
<!-- this.getSuperFieldList();-->
<!-- },-->
<!-- computed: {-->
<!-- importExcelUrl: function () {-->
<!-- return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;-->
<!-- },-->
<!-- },-->
<!-- methods: {-->
<!-- clickThenSelect(record) {-->
<!-- return {-->
<!-- on: {-->
<!-- click: () => {-->
<!-- this.onSelectChange(record.id.split(","), [record]);-->
<!-- }-->
<!-- }-->
<!-- }-->
<!-- },-->
<!-- onClearSelected() {-->
<!-- this.selectedRowKeys = [];-->
<!-- this.selectionRows = [];-->
<!-- this.selectedMainId=''-->
<!-- },-->
<!-- onSelectChange(selectedRowKeys) {-->
<!-- console.log('selectedRowKeys changed: ', selectedRowKeys);-->
<!-- this.selectedRowKeys = selectedRowKeys;-->
<!-- },-->
<!-- initDictConfig() {-->
<!-- },-->
<!-- loadData(arg) {-->
<!-- if(!this.url.list){-->
<!-- this.$message.error("请设置url.list属性!")-->
<!-- return-->
<!-- }-->
<!-- // 1-->
<!-- if (arg === 1) {-->
<!-- this.ipagination.current = 1;-->
<!-- }-->
<!-- this.onClearSelected()-->
<!-- var params = this.getQueryParams();//-->
<!-- this.loading = true;-->
<!-- getAction(this.url.list, params).then((res) => {-->
<!-- if (res.success) {-->
<!-- this.dataSource = res.result.records;-->
<!-- this.ipagination.total = res.result.total;-->
<!-- }-->
<!-- if(res.code===510){-->
<!-- this.$message.warning(res.message)-->
<!-- }-->
<!-- this.loading = false;-->
<!-- })-->
<!-- },-->
<!-- getSuperFieldList() {-->
<!-- let fieldList = [];-->
<!-- fieldList.push({type: 'string', value: 'name', text: '工具名称'})-->
<!-- fieldList.push({type: 'string', value: 'nums', text: '工具编号'})-->
<!-- fieldList.push({type: 'string', value: 'function', text: '功能'})-->
<!-- fieldList.push({type: 'string', value: 'specs', text: '规格'})-->
<!-- fieldList.push({type: 'string', value: 'scope', text: '适用范围'})-->
<!-- fieldList.push({type: 'string', value: 'workshopSection', text: '责人工段'})-->
<!-- fieldList.push({type: 'string', value: 'status', text: '状态 ( 0 在库、1 在用、2 遗失 、3 损坏、4 报废)'})-->
<!-- fieldList.push({type: 'string', value: 'qrode', text: '二维码'})-->
<!-- this.superFieldList = fieldList-->
<!-- }-->
<!-- }-->
<!--}-->
<!--</script>-->
<!--<style scoped>-->
<!--@import '~@assets/less/common.less';-->
<!--</style>-->

@ -9,16 +9,16 @@
<a-input placeholder="请输入衣架编号" v-model="queryParam.hangerCode"></a-input>
</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-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>-->
<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</span>
</a-col>
</a-row>
</a-form>
</div>

@ -110,7 +110,9 @@
<a-row :gutter="24">
<a-col :span="12">
<a-form-model-item label="选择用户" prop="userIds">
<j-select-user-by-dep v-model="formData.userIds" :multi="true"></j-select-user-by-dep>
<j-select-user-by-dep v-model="formData.userIds" :multi="true"
value="id,realname">
</j-select-user-by-dep>
</a-form-model-item>
</a-col>
<a-col :span="12">选中的用户(v-model):{{ formData.userIds }}</a-col>

@ -79,9 +79,9 @@
</template>
<span slot="action" slot-scope="text, record">
<!-- <a @click="handleEdit1(record,code)">编辑</a>-->
<a @click="handleDetail(record.accessoriesId)">详情</a>
<!-- <a-divider type="vertical" />-->
<a-divider type="vertical" />
<!-- <a @click="handleDetail(record)">详情</a>-->
@ -94,7 +94,7 @@
</a-table>
</div>
<ZyAccessoriesFormDetail ref="ZyAccessoriesFormDetail"></ZyAccessoriesFormDetail>
<zy-process-accessories-modal @valueChange="valueChange" ref="modalForm" @ok="modalFormOk"></zy-process-accessories-modal>
</a-card>
</template>
@ -105,12 +105,13 @@
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ZyProcessAccessoriesModal from './ZyProcessAccessoriesModal'
import ZyAccessoriesFormDetail from '@/views/erp/accessories/modules/ZyAccessoriesFormDetail'
export default {
name: 'ZyProcessAccessoriesList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ZyProcessAccessoriesModal
ZyProcessAccessoriesModal,
ZyAccessoriesFormDetail
},
data () {
return {
@ -205,6 +206,9 @@
fieldList.push({type:'popup',value:'processId',text:'工序表id', popup:{code:'',field:'',orgFields:'',destFields:''}})
fieldList.push({type:'popup',value:'accessoriesId',text:'辅料表id', popup:{code:'',field:'',orgFields:'',destFields:''}})
this.superFieldList = fieldList
},
handleDetail(id){
this.$refs.ZyAccessoriesFormDetail.showModal(id)
}
}
}

@ -80,8 +80,8 @@
<span slot="action" slot-scope="text, record">
<!-- <a-divider type="vertical" />-->
<a @click="handleDetail(record.actionId)">详情</a>
<a-divider type="vertical" />
<!-- <a @click="handleDetail(record)">详情</a>-->
<!-- <a-divider type="vertical" />-->
@ -98,6 +98,7 @@
</div>
<zy-process-action-modal @valueChange="valueChange" ref="modalForm" @ok="modalFormOk"></zy-process-action-modal>
<ZyClothActionFormDetail ref="ZyClothActionFormDetail"></ZyClothActionFormDetail>
</a-card>
</template>
@ -107,6 +108,7 @@
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ZyProcessActionModal from './ZyProcessActionModal'
import ZyClothActionFormDetail from './ZyClothActionFormDetail'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
import {getAction} from "@api/manage";
@ -114,7 +116,8 @@
name: 'ZyProcessActionList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ZyProcessActionModal
ZyProcessActionModal,
ZyClothActionFormDetail
},
data () {
return {
@ -237,6 +240,9 @@
fieldList.push({type:'string',value:'processId',text:'工序id',dictCode:'zy_process,process_name,id'})
fieldList.push({type:'string',value:'actionId',text:'动作id',dictCode:'zy_cloth_action,descr,nums'})
this.superFieldList = fieldList
},
handleDetail(id){
this.$refs.ZyClothActionFormDetail.showModal(id)
}
}
}

@ -85,8 +85,9 @@
<span slot="action" slot-scope="text, record">
<!-- <a @click="handleEdit1(record,code)">编辑</a>-->
<a @click="handleDetail(record.fabricId,record.fabricId_dictText)">详情</a>
<!-- <a-divider type="vertical" />-->
<a-divider type="vertical" />
<!-- <a @click="handleDetail(record)">详情</a>-->
<!-- <a-divider type="vertical" />-->
@ -100,6 +101,7 @@
</div>
<zy-process-fabric-modal @valueChange="valueChange" ref="modalForm" @ok="modalFormOk"></zy-process-fabric-modal>
<ZyFabricFormDetailModel ref="ZyFabricFormDetailModel"></ZyFabricFormDetailModel>
</a-card>
</template>
@ -110,12 +112,14 @@
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ZyProcessFabricModal from './ZyProcessFabricModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
import ZyFabricFormDetailModel from '@/views/erp/fabric/modules/ZyFabricFormDetailModel'
export default {
name: 'ZyProcessFabricList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ZyProcessFabricModal
ZyProcessFabricModal,
ZyFabricFormDetailModel
},
data () {
return {
@ -209,6 +213,10 @@
fieldList.push({type:'string',value:'processId',text:'工序',dictCode:'zy_process,process_name,id'})
fieldList.push({type:'string',value:'fabricId',text:'面料',dictCode:'zy_fabric,name,id'})
this.superFieldList = fieldList
},
handleDetail(id,name){
this.$refs.ZyFabricFormDetailModel.showModal(id,name)
// this.$children[0].showModal(id)
}
}
}

@ -42,7 +42,7 @@
</a-col>
<a-col :span="12">
<a-form-model-item label="工序时间(秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTime">
<a-input-number v-model="model.processTime" placeholder="请输入工序时间" ></a-input-number>
<a-input v-model="model.processTime" placeholder="请输入工序时间" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="11">
@ -78,12 +78,12 @@
<!-- </a-col>-->
<a-col :span="12">
<a-form-model-item label="手工宽放(毫米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="manualWide">
<a-input-number v-model="model.manualWide" placeholder="请输入手工宽放" ></a-input-number>
<a-input v-model="model.manualWide" placeholder="请输入手工宽放" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="11">
<a-form-model-item label="手工时间(秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="manualTime">
<a-input-number v-model="model.manualTime" placeholder="请输入手工时间" style="width: 100%" />
<a-input v-model="model.manualTime" placeholder="请输入手工时间" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
@ -93,7 +93,7 @@
</a-col>
<a-col :span="11">
<a-form-model-item label="机器宽放(毫米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="machineWide">
<a-input-number v-model="model.machineWide" placeholder="请输入机器宽放" ></a-input-number>
<a-input v-model="model.machineWide" placeholder="请输入机器宽放" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="12">
@ -108,7 +108,7 @@
<!-- </a-col>-->
<a-col :span="11">
<a-form-model-item label="绑包宽放(毫米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bundleWide">
<a-input-number v-model="model.bundleWide" placeholder="请输入绑包宽放" ></a-input-number>
<a-input v-model="model.bundleWide" placeholder="请输入绑包宽放" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="12">
@ -265,9 +265,35 @@
},
confirmLoading: false,
validatorRules: {
processTime:[
{
pattern: /^\d+$/,message:'请输入正整数'
},
],
manualWide:[
{
pattern: /^\d+$/,message:'请输入正整数'
},
],
machineWide:[
{
pattern: /^\d+$/,message:'请输入正整数'
},
],
bundleWide:[
{
pattern: /^\d+$/,message:'请输入正整数'
},
],
fabricNum: [
{ required: true, message: '请输入面料代码!'},
],
enterpriseId: [
{ required: true, message: '请选择企业!'},
],
typeId: [
{ required: true, message: '请选择款式!'},
],
price:[{
pattern: /^\d*\.?\d+$/,message:'请输入正数'
},],

@ -1,6 +1,6 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333">{{biaoTi}}</p>
<p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
@ -81,6 +81,9 @@
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleDetail(record.accessoriesId)">详情</a>
<a-divider type="vertical" />
<a @click="handleEdit(record)">编辑</a>
<!-- <a-divider type="vertical" />-->
@ -92,7 +95,7 @@
</a-table>
</div>
<ZyAccessoriesFormDetail ref="ZyAccessoriesFormDetail"></ZyAccessoriesFormDetail>
<product-accessories-modal ref="modalForm" @ok="modalFormOk"></product-accessories-modal>
</a-card>
</template>
@ -105,12 +108,13 @@
import ProductAccessoriesModal from './modules/ProductAccessoriesModal'
import {getAction} from "@api/manage";
import {filterObj} from "@/utils/util";
import ZyAccessoriesFormDetail from '@/views/erp/accessories/modules/ZyAccessoriesFormDetail'
export default {
name: 'ProductAccessoriesList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ProductAccessoriesModal
ProductAccessoriesModal,
ZyAccessoriesFormDetail
},
data () {
return {
@ -129,16 +133,16 @@
return parseInt(index)+1;
}
},
{
title:'产品编号',
align:"center",
dataIndex: 'productId'
},
// {
// title:'',
// align:"center",
// dataIndex: 'productId_dictText'
// dataIndex: 'productId'
// },
{
title:'产品编号',
align:"center",
dataIndex: 'productId_dictText'
},
{
title:'辅料',
align:"center",
@ -178,6 +182,7 @@
},
dictOptions:{},
superFieldList:[],
loadRouteType:false,
}
},
created() {
@ -192,7 +197,7 @@
fanhui(){
this.$router.push({
/*返回产品*/
path: '',/*在引号中填写返回vue*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
initDictConfig(){
@ -209,7 +214,7 @@
loadParameter() {
if (this.loadRouteType === false) {
this.id = this.$route.query.id;
this.biaoTi = this.$route.query.styleNames+"产品辅料管理";
this.biaoTi = this.$route.query.productName+"产品辅料管理";
console.log("***********")
this.loadRouteType = true;
}
@ -263,6 +268,9 @@
this.accessoriesId = ''
this.loadData(1);
},
handleDetail(id){
this.$refs.ZyAccessoriesFormDetail.showModal(id)
}
}
}
</script>

@ -1,6 +1,6 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333">{{biaoTi}}</p>
<p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
@ -81,6 +81,9 @@
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleDetail(record.fabricId,record.fabricId_dictText)">详情</a>
<a-divider type="vertical" />
<a @click="handleEdit(record)">编辑</a>
<!-- <a-divider type="vertical" />-->
@ -91,7 +94,7 @@
</a-table>
</div>
<ZyFabricFormDetailModel ref="ZyFabricFormDetailModel"></ZyFabricFormDetailModel>
<product-fabric-modal ref="modalForm" @ok="modalFormOk"></product-fabric-modal>
</a-card>
</template>
@ -104,12 +107,13 @@
import ProductFabricModal from './modules/ProductFabricModal'
import {getAction} from "@api/manage";
import {filterObj} from "@/utils/util";
import ZyFabricFormDetailModel from '@/views/erp/fabric/modules/ZyFabricFormDetailModel'
export default {
name: 'ProductFabricList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ProductFabricModal
ProductFabricModal,
ZyFabricFormDetailModel
},
data () {
return {
@ -131,7 +135,7 @@
{
title:'产品编号',
align:"center",
dataIndex: 'productId'
dataIndex: 'productId_dictText'
},
{
title:'面料',
@ -172,6 +176,7 @@
},
dictOptions:{},
superFieldList:[],
loadRouteType:false,
}
},
created() {
@ -188,7 +193,7 @@
fanhui(){
this.$router.push({
/*返回产品*/
path: '',/*在引号中填写返回vue*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
getSuperFieldList(){
@ -203,8 +208,8 @@
loadParameter() {
if (this.loadRouteType === false) {
this.id = this.$route.query.id;
this.biaoTi = this.$route.query.styleNames+"产品面料管理";
console.log("***********")
this.biaoTi = this.$route.query.productName+"产品面料管理";
console.log("***********想看看")
this.loadRouteType = true;
}
},
@ -257,6 +262,10 @@
this.fabricId = ''
this.loadData(1);
},
handleDetail(id,name){
this.$refs.ZyFabricFormDetailModel.showModal(id,name)
// this.$children[0].showModal(id)
}
}
}
</script>

@ -1,6 +1,6 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333">{{biaoTi}}</p>
<p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
@ -132,7 +132,7 @@
{
title:'产品编号',
align:"center",
dataIndex: 'productId'
dataIndex: 'productId_dictText'
},
// {
// title:'',
@ -174,6 +174,7 @@
},
dictOptions:{},
superFieldList:[],
loadRouteType:false
}
},
created() {
@ -188,7 +189,7 @@
fanhui(){
this.$router.push({
/*返回产品*/
path: '',/*在引号中填写返回vue*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
up(id){
@ -222,7 +223,7 @@
loadParameter() {
if (this.loadRouteType === false) {
this.id = this.$route.query.id;
this.biaoTi = this.$route.query.styleNames+"产品设备管理";
this.biaoTi = this.$route.query.productName+"产品设备管理";
console.log("***********")
this.loadRouteType = true;
}

@ -1,13 +1,13 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333">{{biaoTi}}</p>
<p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
<!-- 查询区域 -->
<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="operationtoolId"></a-input>
<a-form-item label="工具名称">
<a-input placeholder="工具名称" v-model="operationtoolId"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
@ -132,7 +132,7 @@
{
title:'产品编号',
align:"center",
dataIndex: 'productId'
dataIndex: 'productId_dictText'
},
// {
// title:'',
@ -174,6 +174,7 @@
},
dictOptions:{},
superFieldList:[],
loadRouteType:false,
}
},
created() {
@ -188,7 +189,7 @@
fanhui(){
this.$router.push({
/*返回产品*/
path: '',/*在引号中填写返回vue*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
up(id){
@ -222,7 +223,7 @@
loadParameter() {
if (this.loadRouteType === false) {
this.id = this.$route.query.id;
this.biaoTi = this.$route.query.styleNames+"产品工具管理";
this.biaoTi = this.$route.query.productName+"产品工具管理";
console.log("***********")
this.loadRouteType = true;
}

@ -1,5 +1,6 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
@ -22,7 +23,8 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button @click="fanhui" type="primary" icon="plus">返回</a-button>
<!-- <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>-->
@ -81,9 +83,10 @@
<span slot="action" slot-scope="text, record">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<a @click="openDetail(record.processId)">详情</a>
<a-divider type="vertical" />
<a @click="up(record.id)">升序</a>
<a-divider type="vertical" />
@ -92,7 +95,7 @@
</a-table>
</div>
<ZyProcessDetail ref="zyProcessDetail"></ZyProcessDetail>
<zy-product-process-modal @valueChange="valueChange" ref="modalForm" @ok="modalFormOk"></zy-product-process-modal>
</a-card>
</template>
@ -105,17 +108,19 @@
import ZyProductProcessModal from './modules/ZyProductProcessModal'
import {getAction} from "@api/manage";
import {filterObj} from "@/utils/util";
import ZyProcessDetail from '@/views/process/modules/ZyProcessDetail'
export default {
name: 'ZyProductProcessList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ZyProductProcessModal
ZyProductProcessModal,
ZyProcessDetail
},
data () {
return {
description: '产品工序管理页面',
processId:'',
biaoTi:'',
//
columns: [
{
@ -175,6 +180,10 @@
},
},
methods: {
openDetail(id) {
this.$refs.zyProcessDetail.showModal(id)
// this.$children[0].showModal(id)
},
up(id){
getAction(this.url.up,{id:id}).then((res)=>{
if(res.success){
@ -208,6 +217,7 @@
loadParameter() {
if (this.loadRouteType === false) {
this.id = this.$route.query.id;
this.biaoTi=this.$route.query.productName+"产品工序管理";
console.log("***********")
this.loadRouteType = true;
}
@ -261,6 +271,12 @@
this.processId = ''
this.loadData(1);
},
fanhui(){
this.$router.push({
/*返回产品*/
path: '/WorkProduct',/*在引号中填写返回vue*/
});
},
}
}
</script>

@ -1,10 +1,10 @@
<template>
<a-card :bordered="false">
<div class="table-operator">
<a-button type="primary" icon="download" @click="handleExportXls('计划工序')">导出</a-button>
<!-- <a-button type="primary" @click="handleTableSave($event)">保存</a-button>-->
<a-button type="primary" @click="fanHui()">返回</a-button>
</div>
<!-- <div class="table-operator">-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('计划工序')">导出</a-button>-->
<!-- &lt;!&ndash; <a-button type="primary" @click="handleTableSave($event)">保存</a-button>&ndash;&gt;-->
<!-- <a-button type="primary" @click="fanHui()">返回</a-button>-->
<!-- </div>-->
<!-- table区域-begin -->
<div>
@ -23,7 +23,12 @@
:dataSource="dataSource"
@valueChange="handleValueChange"
@save="handleTableSave"
/>
>
<template v-slot:toolbarSuffix>
<a-button type="primary" icon="download" @click="handleExportXls('计划工序')">导出</a-button>
<a-button type="primary" icon="rollback" @click="fanHui()">返回</a-button>
</template>
</j-vxe-table>
</div>
</a-card>
</template>
@ -44,7 +49,7 @@ export default {
return {
toolbarConfig: {
// add remove clearSelection
btn: ['save']
btn: ['save',]
},
description: '生产计划工序管理页面',
loading: false,
@ -65,69 +70,76 @@ export default {
dataSource: [],
// columns,
columns: [
{key: 'workOrderId', title: '工单编号', width: '180px'},
{key: 'productName', title: '产品名称', width: '180px'},
{key: 'departName', title: '车间名称', width: '180px'},
{key: 'processName', title: '工序名称', width: '180px'},
{key: 'workOrderId', title: '工单编号', width: '200px'},
// {key: 'productName', title: '', width: '120px'},
{key: 'departName', title: '车间名称', width: '120px'},
{key: 'processName', title: '工序名称', width: '120px'},
{
title: '工位列表',
title: '工位ID',
key: 'stationId',
type: JVXETypes.hidden,
// width: '200px',
// options: [],
// placeholder: '${title}',
},{
title: '工位名称',
key: 'stationName',
type: JVXETypes.select,
width: '200px',
options: [],
placeholder: '请选择${title}',
},
{
title: 'stationIds',
key: 'stationIds',
type: JVXETypes.hidden,
},
{
title: '设备列表',
key: 'machineIds',
key: 'machineNames',
type: JVXETypes.selectMultiple,
width: '200px',
options: [],
placeholder: '请选择${title}',
}, {
title: '工具列表',
},
{
title: 'toodsIds',
key: 'toolsIds',
type: JVXETypes.hidden,
},
{
title: '工具列表',
key: 'toolsIdNames',
type: JVXETypes.selectMultiple,
width: '200px',
options: [],
placeholder: '请选择${title}',
},
// {
// title: 'JPopup',
// key: 'popup',
// type: JVXETypes.popup,
// width: '180px',
// popupCode: 'demo',
// field: 'name,sex,age',
// orgFields: 'name,sex,age',
// destFields: 'popup,popup_sex,popup_age'
// },
{key: 'proProcess', type: JVXETypes.hidden, title: '前导工序ID', width: '120px'},
{
title: '前导工序',
key: 'proProcess',
key: 'proProcessName',
type: JVXETypes.popup,
width: '180px',
popupCode: 'zy_process',
field: 'id,process_code,process_name,process_describe',
orgFields: 'id,process_code,process_name,process_describe',
destFields: 'proProcess,process_code,process_name,process_describe',
// orgFields: 'id,process_code,process_name,process_describe',
// destFields: 'proProcessName,process_code,process_name,process_describe',
orgFields: 'process_name,id',
destFields: 'proProcessName,proProcess',
},
// {
// key: 'proProcess',
// title: '',
// dictCode: 'zy_process,process_name,id,id in(select process_id from zy_product_process where product_id="1")',
// width: '150',
// type: JVXETypes.select
// },
{key: 'postProcess', type: JVXETypes.hidden, title: '后导工序ID', width: '120px'},
{
title: '后导工序',
key: 'postProcess',
key: 'postProcessName',
type: JVXETypes.popup,
width: '180px',
popupCode: 'zy_process',
field: 'id,process_code,process_name,process_describe',
orgFields: 'id,process_code,process_name,process_describe',
destFields: 'postProcess,process_code,process_name,process_describe',
// orgFields: 'id,process_code,process_name,process_describe',
// destFields: 'proProcessName,process_code,process_name,process_describe',
orgFields: 'process_name,id',
destFields: 'postProcessName,postProcess',
},
{key: 'inputProduct', title: '输入产品', width: '150', type: JVXETypes.input},
{key: 'semiProduct', title: '成品/半成品', width: '150', type: JVXETypes.input},
@ -142,6 +154,7 @@ export default {
planId: "",
dictOptions: {},
superFieldList: [],
stationId: [],
stationList: [],
toolsList: [],
machineList: [],
@ -154,24 +167,14 @@ export default {
//
handleTableSave({$table, target}) {
console.log("保存开始-----")
console.log("生产计划工序保存开始-----------------")
//
$table.validate().then((errMap) => {
//
if (!errMap) {
//
let tableData = target.getTableData()
tableData.forEach(item => {
item.id = '';
})
console.log('当前保存的数据是:', tableData)
// //
// let newData = target.getNewData()
// console.log('-- ', newData)
// //
// let deleteData = target.getDeleteData()
// console.log('-- ', deleteData)
//
this.loading = true
postAction(this.url.addProcessBatch, tableData).then(res => {
@ -219,6 +222,7 @@ export default {
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.records || res.result;
// this.stationId = this.dataSource[0].stationId;
this.stationList = this.dataSource[0].stationList;
} else {
// this.stationIdCode = "station,station_name,id,depart_id in (select workshop_id from zy_product_plan where id='" + this.planId + "')";
@ -248,15 +252,9 @@ export default {
console.log("handleSelectRowChange")
console.log("handleSelectRowChange-event:", event)
const {type, row, column, value, target, $table} = event
console.log(JSON.stringify(this.stationList));
console.log(JSON.stringify(this.stationIdList));
// target.$refs.vxe.columns[6].dictCode = this.stationIdCode;
target.$refs.vxe.columns[6].options = this.stationList;
//
// target.setValues([{
// rowKey: row.id,
// values: {machineIds: '', toolsIds: ''}
// }])
// target.$refs.vxe.columns[4].options = []
},
/** 当选项被改变时,联动其他组件 */
handleValueChange(event) {

@ -63,41 +63,41 @@
<!-- <a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>-->
<!-- </a-popover>-->
<!-- </span>-->
<span slot="stationId_dictText" slot-scope="text, record">
<a-popover>
<template slot="content">
<p>{{ text }}</p>
</template>
<a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>
</a-popover>
</span>
<!-- <span slot="stationId_dictText" slot-scope="text, record">-->
<!-- <a-popover>-->
<!-- <template slot="content">-->
<!-- <p>{{ text }}</p>-->
<!-- </template>-->
<!-- <a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>-->
<!-- </a-popover>-->
<!-- </span>-->
<span slot="toolsIds_dictText" slot-scope="text, record">
<a-popover>
<template slot="content">
<p>{{ text }}</p>
</template>
<a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>
</a-popover>
</span>
<!-- <span slot="toolsIds_dictText" slot-scope="text, record">-->
<!-- <a-popover>-->
<!-- <template slot="content">-->
<!-- <p>{{ text }}</p>-->
<!-- </template>-->
<!-- <a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>-->
<!-- </a-popover>-->
<!-- </span>-->
<span slot="machineIds_dictText" slot-scope="text, record">
<a-popover>
<template slot="content">
<p>{{ text }}</p>
</template>
<a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>
</a-popover>
</span>
<!-- <span slot="machineIds_dictText" slot-scope="text, record">-->
<!-- <a-popover>-->
<!-- <template slot="content">-->
<!-- <p>{{ text }}</p>-->
<!-- </template>-->
<!-- <a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>-->
<!-- </a-popover>-->
<!-- </span>-->
<span slot="userIds" slot-scope="text, record">
<a-popover>
<template slot="content">
<p>{{ text }}</p>
</template>
<a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>
</a-popover>
</span>
<!-- <span slot="userIds" slot-scope="text, record">-->
<!-- <a-popover>-->
<!-- <template slot="content">-->
<!-- <p>{{ text }}</p>-->
<!-- </template>-->
<!-- <a style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;width: 100px">{{ text }}</a>-->
<!-- </a-popover>-->
<!-- </span>-->
<span slot="action" slot-scope="text, record">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
@ -143,59 +143,14 @@ export default {
}
},
{
title: '生产计划',
align: "center",
dataIndex: 'planId'
},
{
title: '工序',
align: "center",
dataIndex: 'processId_dictText',
// scopedSlots: {customRender: 'processId_dictText'}
},
{
title: '工位',
align: "center",
dataIndex: 'stationId_dictText',
scopedSlots: {customRender: 'stationId_dictText'}
},
{
title: '设备',
title: '工单编号',
align: "center",
dataIndex: 'machineIds_dictText',
scopedSlots: {customRender: 'machineIds_dictText'}
dataIndex: 'productCode'
},
{
title: '工具',
title: '生产计划',
align: "center",
dataIndex: 'toolsIds_dictText',
scopedSlots: {customRender: 'toolsIds_dictText'}
},
// {
// title: '',
// align: "center",
// dataIndex: 'userIds_dictText',
// scopedSlots: {customRender: 'userIds_dictText'}
// },
{
title:'前导工序',
align:"center",
dataIndex: 'proProcess_dictText'
},
{
title:'后导工序',
align:"center",
dataIndex: 'postProcess_dictText'
},
{
title:'输入产品',
align:"center",
dataIndex: 'inputProduct'
},
{
title:'成品/半成品',
align:"center",
dataIndex: 'semiProduct'
dataIndex: 'id'
},
{
title: '操作',
@ -207,8 +162,8 @@ export default {
}
],
url: {
list: "/org.jeecg.modules.productplan/zyPlanProcess/list",
// list: "/org.jeecg.modules.productplan/zyPlanProcess/list2",
// list: "/org.jeecg.modules.productplan/zyPlanProcess/list",
list: "/org.jeecg.modules.productplan/zyProductPlan/list",
productPlanlist: "/org.jeecg.modules.productplan/zyProductPlan/list",
delete: "/org.jeecg.modules.productplan/zyPlanProcess/delete",
deleteBatch: "/org.jeecg.modules.productplan/zyPlanProcess/deleteBatch",
@ -221,32 +176,19 @@ export default {
}
},
created() {
this.getSuperFieldList();
// this.getSuperFieldList();
},
computed: {
importExcelUrl: function () {
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
// 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/ZyPlanProcessDataList',
query: { //
'planId': record.planId,
// 'stationName': record.stationName,
'planId': record.id,
},
});
},
@ -271,7 +213,4 @@ export default {
// },
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
</script>

@ -1,9 +1,80 @@
<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.productCode"></a-input>
</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.departId"/>
<!-- <j-dict-select-tag type="list" v-model="queryParam.workshopId"-->
<!-- dictCode="sys_depart,depart_name,id,org_category='2'"/>-->
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="车间负责人">
<j-select-multi-user
v-model="queryParam.responsiblePerson"
:multiple="false"
placeholder="请选择车间负责人"
/>
<!-- <j-select-user-by-dep v-model="queryParam.responsiblePerson" :multi="false"-->
<!-- :back-user="true"-->
<!-- >-->
<!-- </j-select-user-by-dep>-->
<!-- <j-select-user-by-dep placeholder="请输入车间负责人" v-model="queryParam.responsiblePerson"/>-->
</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.teamId"></a-input>-->
<j-dict-select-tag type="list" v-model="queryParam.teamId" dict-code="groupx,group_name,id"
placeholder="请输入班组名称"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<!-- <a-input placeholder="请输入班组长" v-model="queryParam.teamLeader"></a-input>-->
<a-form-item label="班组长">
<j-select-multi-user
v-model="queryParam.teamLeader"
:multiple="false"
placeholder="请选择班组长"
/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="生产开始时间">
<!-- <a-date-picker valueFormat="YYYY-MM-DD" v-model="model.birthday"/>-->
<a-date-picker placeholder="请选生产开始时间" valueFormat="YYYY-MM-DD HH:mm:ss"
v-model="queryParam.workTime" style="width: 100%"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="生产状态">
<j-dict-select-tag type="list" v-model="queryParam.status" dictCode="productplanStatus"
placeholder="请选择状态"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="是否加急">
<!-- <j-dict-select-tag type="radio" v-model="queryParam.speedUp" dictCode="sfjj" placeholder="请选择是否加急"/>-->
<j-dict-select-tag type="list" v-model="queryParam.speedUp" dictCode="sfjj"
placeholder="请选择是否加急"/>
</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>
</span>
</a-col>
</a-row>
</a-form>
</div>
@ -13,23 +84,6 @@
<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 -->
@ -54,46 +108,27 @@
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">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
<img v-else :src="getImgView(text)" 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 v-if="record.status===0" @click="handleEdit(record)">编辑
<a-divider type="vertical"/>
</a>
<!-- <a v-else disabled="true">编辑</a>-->
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a v-if="record.status===0">删除</a>
<!-- <a v-else disabled="true">删除</a>-->
<a-divider type="vertical"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
<!-- <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>-->
</a-popconfirm>
<a v-if="record.status ===8" disabled="true">撤销</a>
<a v-else @click="chexiao(record)">撤销</a>
<a-divider type="vertical"/>
<a @click="jumpPage1(record)">管理</a>
<a-divider type="vertical"/>
<a @click="getPaiWeiTu(record)">查看排位图</a>
</span>
</a-table>
@ -109,6 +144,8 @@ import '@/assets/less/TableExpand.less'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ZyProductPlanModal from './modules/ZyProductPlanModal'
import {getAction, putAction, httpAction, postAction} from "@api/manage";
import {filterObj} from "@/utils/util";
export default {
name: 'ZyProductPlanList',
@ -136,11 +173,20 @@ export default {
align: "center",
dataIndex: 'productCode'
},
// {
// title: '',
// align: "center",
// dataIndex: 'workshopId'
// },
{
title: '产品编号',
align: "center",
dataIndex: 'productNo'
}, {
title: '产品名称',
align: "center",
dataIndex: 'productName'
},
{
title: '生产企业',
align: "center",
dataIndex: 'productOrg'
},
{
title: '车间名称',
align: "center",
@ -149,7 +195,7 @@ export default {
{
title: '车间负责人',
align: "center",
dataIndex: 'responsiblePerson'
dataIndex: 'responsiblePerson_dictText'
},
// {
// title: '',
@ -164,23 +210,14 @@ export default {
{
title: '组长',
align: "center",
dataIndex: 'teamLeader'
dataIndex: 'teamLeader_dictText'
},
{
title: '生产开始时间',
width:150,
width: 150,
align: "center",
dataIndex: 'workTime',
// customRender: function (text) {
// return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
// }
},
/*{
title: '创建时间', width:150,
dataIndex: 'createTime',
align:"center",
// sorter:true
},*/
{
title: '生产时长',
align: "center",
@ -201,11 +238,11 @@ export default {
{
title: '审核人',
align: "center",
dataIndex: 'auditBy'
dataIndex: 'auditBy_dictText'
},
{
title: '审核时间',
width:150,
width: 150,
align: "center",
dataIndex: 'auditTimr',
// customRender: function (text) {
@ -223,6 +260,8 @@ export default {
],
url: {
list: "/org.jeecg.modules.productplan/zyProductPlan/list",
paiweitu: "/org.jeecg.modules.productplan/zyProductPlan/paiweitu",
updateStatus: "/org.jeecg.modules.productplan/zyProductPlan/edit",
delete: "/org.jeecg.modules.productplan/zyProductPlan/delete",
deleteBatch: "/org.jeecg.modules.productplan/zyProductPlan/deleteBatch",
exportXlsUrl: "/org.jeecg.modules.productplan/zyProductPlan/exportXls",
@ -234,7 +273,7 @@ export default {
}
},
created() {
this.getSuperFieldList();
// this.getSuperFieldList();
},
computed: {
// importExcelUrl: function(){
@ -242,23 +281,99 @@ export default {
// },
},
methods: {
initDictConfig() {
jumpPage1(record) {
this.$router.push({
path: '/team/StationMachineList',
query: { //
'plan': record.id,
// 'stationName': record.stationName,
// 'stationNum': record.stationNum,
// 'departName': record.departName,
},
});
},
getSuperFieldList() {
let fieldList = [];
fieldList.push({type: 'string', value: 'productCode', text: '工单编号', dictCode: ''})
fieldList.push({type: 'string', value: 'workshopId', text: '车间id', dictCode: ''})
fieldList.push({type: 'string', value: 'responsiblePerson', text: '车间负责人', dictCode: ''})
fieldList.push({type: 'string', value: 'teamId', text: '班组', dictCode: ''})
fieldList.push({type: 'string', value: 'teamLeader', text: '组长', dictCode: ''})
fieldList.push({type: 'date', value: 'workTime', text: '生产开始时间'})
fieldList.push({type: 'int', value: 'duration', text: '生产时长', dictCode: ''})
fieldList.push({type: 'int', value: 'status', text: '状态', dictCode: ''})
fieldList.push({type: 'int', value: 'speedUp', text: '是否加急', dictCode: ''})
fieldList.push({type: 'string', value: 'auditBy', text: '审核人', dictCode: ''})
fieldList.push({type: 'date', value: 'auditTimr', text: '审核时间'})
this.superFieldList = fieldList
}
chexiao(record) {
let parma = {
"id": record.id,
"status": '8',
}
putAction(this.url.updateStatus, parma).then((res) => {
if (res.success) {
this.$message.success("操作成功");
this.loadData();
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
getPaiWeiTu(record) {
// alert(JSON.stringify(record));
getAction(this.url.paiweitu, record).then((res) => {
if (res.success) {
// this.dataSource = res.result.records || res.result;
console.log("the paiweitu----------" + JSON.stringify(res.result))
} else {
this.$message.warning(res.message)
}
}).finally(() => {
// this.dataSource.forEach(item => {
// item['stationName'] = this.stationName;
// item['stationNum'] = this.stationNum;
// })
this.loading = false
})
},
// loadData(arg) {
// if (!this.url.list) {
// this.$message.error("url.list!")
// return
// }
// // 1
// if (arg === 1) {
// this.ipagination.current = 1;
// }
// this.loadParameter();
// var params = this.getQueryParams();//
// this.loading = true;
// console.log("----------------the params:", params);
// getAction(this.url.list, params).then((res) => {
// if (res.success) {
// this.dataSource = res.result.records || res.result;
// if (res.result.total) {
// this.ipagination.total = res.result.total;
// } else {
// this.ipagination.total = 0;
// }
// } else {
// this.$message.warning(res.message)
// }
// }).finally(() => {
// // this.dataSource.forEach(item => {
// // item['stationName'] = this.stationName;
// // item['stationNum'] = this.stationNum;
// // })
// this.loading = false
// })
// },
// getQueryParams() {
// //
// let sqp = {}
// if (this.superQueryParams) {
// sqp['superQueryParams'] = encodeURI(this.superQueryParams)
// sqp['superQueryMatchType'] = this.superQueryMatchType
// }
// var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters);
// param.field = this.getQueryField();
// param.pageNo = this.ipagination.current;
// param.pageSize = this.ipagination.pageSize;
// param.planId = this.planId;
// return filterObj(param);
// },
}
}
</script>

@ -29,8 +29,13 @@
prop="responsiblePerson">
<!-- <j-select-multi-user placeholder="请选择车间负责人"-->
<!-- v-model="model.responsiblePerson"></j-select-multi-user>-->
<j-select-multi-user placeholder="请选择车间负责人" v-model="model.responsiblePerson"
:multiple="false"></j-select-multi-user>
<!-- <j-select-multi-user placeholder="请选择车间负责人" v-model="model.responsiblePerson"-->
<!-- :multiple="false"></j-select-multi-user>-->
<j-dict-select-tag type="list" v-model="model.responsiblePerson"
placeholder="请选择车间负责人"
:dict-code="departManger"
:disabled="model.workshopId==null"/>
</a-form-model-item>
</a-col>
@ -46,18 +51,19 @@
<a-form-model-item label="组长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamLeader">
<!-- <a-input v-model="model.teamLeader" placeholder="请输入组长"></a-input>-->
<j-dict-select-tag type="list" v-model="model.teamLeader"
placeholder="请选择组长" :dict-code="groupxVal2"
placeholder="请选择组长" :dict-code="teamLeaderVal"
:disabled="model.teamId==null"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="生产开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime">
<!-- <j-date placeholder="请选择生产开始时间" v-model="model.workTime" style="width: 100%"/>-->
<a-date-picker placeholder="请选择生产开始时间" showTime valueFormat='YYYY-MM-DD HH:mm:ss' v-model="model.workTime" style="width: 100%"/>
<a-date-picker placeholder="请选择生产开始时间" showTime valueFormat='YYYY-MM-DD HH:mm:ss'
v-model="model.workTime" style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="生产时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="duration">
<a-form-model-item label="生产时长(天)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="duration">
<a-input-number v-model="model.duration" placeholder="请输入生产时长" style="width: 100%"/>
</a-form-model-item>
</a-col>
@ -69,8 +75,11 @@
</a-col>
<a-col :span="24">
<a-form-model-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditBy">
<j-select-multi-user placeholder="请选择审核人" v-model="model.auditBy"
:multiple="false"></j-select-multi-user>
<!-- <j-select-multi-user placeholder="请选择审核人" v-model="model.auditBy" -->
<!-- :multiple="false"></j-select-multi-user>-->
<j-dict-select-tag type="list" v-model="model.auditBy"
placeholder="请选择审核人"
:dict-code="auditByVal"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
@ -109,9 +118,17 @@ export default {
},
data() {
return {
departManger: "sys_user,realname,username",
auditByVal: "sys_user,realname,username",
groupxVal: "groupx,group_name,id",
groupxVal2: "groupx,enterprises_manager,id",
model: {},
teamLeaderVal: "sys_user,realname,username",
model: {
workTime: '',
status: 0,
auditTimr: '',
speedUp: 0,
auditBy: 'admin',
},
labelCol: {
xs: {span: 24},
sm: {span: 5},
@ -126,7 +143,7 @@ export default {
{required: true, message: "工单不能为空"},
],
workshopId: [
{required: true, message: "工单不能为空"},
{required: true, message: "车间不能为空"},
],
teamId: [
{required: true, message: "班组不能为空"},
@ -140,6 +157,7 @@ export default {
],
},
url: {
groupxList: "/groupx/list",
add: "/org.jeecg.modules.productplan/zyProductPlan/add",
edit: "/org.jeecg.modules.productplan/zyProductPlan/edit",
queryById: "/org.jeecg.modules.productplan/zyProductPlan/queryById"
@ -154,19 +172,43 @@ export default {
created() {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
// console.log(this.getNowDate())
// this.getNowDate(); //
},
methods: {
//
// 1,()
// 2,()
getGroupxValChange() {
// alert("" + this.model.workshopId);
// this.basicInfoCode = "py_basic_info,chart_head,id, major_id='" + this.queryParam.majorId + "'";
this.departManger = "sys_user,realname,username,id in (select user_id from sys_user_depart where dep_id='" + this.model.workshopId + "')";
this.groupxVal = "groupx,group_name,id,depart_id='" + this.model.workshopId + "'";
// this.groupxVal2 = "groupx,enterprises_manager,enterprises_manager,depart_id='" + this.model.workshopId + "'";
this.auditByVal = "sys_user,realname,username,id in (select user_id from sys_user_depart where dep_id='" + this.model.workshopId + "')";
},
//
getEnterprisesManagerValChange() {
this.groupxVal2 = "groupx,enterprises_manager,enterprises_manager,id='" + this.model.teamId + "'";
// this.teamLeaderVal = "sys_user,realname,id,id=(select enterprises_manager from groupx where id='" + this.model.teamId + "')";
let that = this;
let param = {
"id": that.model.teamId,
}
// alert(param.toString());
getAction(that.url.groupxList, param).then((res) => {
if (res.success) {
// console.log("----------" + JSON.stringify(res.result.records))
let enterprisesManager = JSON.stringify(res.result.records[0].enterprisesManager_dictText);
// enterprisesManager.replace('"',"")
enterprisesManager = enterprisesManager.substring(1, enterprisesManager.length - 1);
that.model = Object.assign(that.model, {'teamLeader': enterprisesManager});
this.$forceUpdate();
}
});
},
add() {
this.edit(this.modelDefault);
this.getNowDate();
// console.log(this.model.workTime);
},
edit(record) {
this.model = Object.assign({}, record);
@ -201,6 +243,39 @@ export default {
})
},
}
getNowDate() {
var date = new Date();
var sign2 = ":";
var year = date.getFullYear() //
var month = date.getMonth() + 1; //
var day = date.getDate(); //
var hour = date.getHours(); //
var minutes = date.getMinutes(); //
var seconds = date.getSeconds() //
var weekArr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天'];
var week = weekArr[date.getDay()];
// 0
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
if (hour >= 0 && hour <= 9) {
hour = "0" + hour;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
this.model.workTime = year + "-" + month + "-" + day + " " + hour + sign2 + minutes + sign2 + seconds;
this.model.auditTimr = year + "-" + month + "-" + day + " " + hour + sign2 + minutes + sign2 + seconds;
},
},
}
</script>

@ -75,31 +75,52 @@
<a-tab-pane tab="基本信息" key="1" >
<a-card :bordered="false" v-if="selectedKeys.length>0">
<a-form :form="form">
<template v-if="!orgTypeDisabled">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级部门">
<a-tree-select
style="width:100%"
:dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
:treeData="treeData"
:disabled="disable"
v-model="model.parentId"
placeholder="无">
</a-tree-select>
</a-form-item>
</template>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="部门名称">
<a-input placeholder="请输入机构/部门名称" v-decorator="['departName', validatorRules.departName ]"/>
</a-form-item>
<template v-if="!orgCategoryDisabled">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级部门">
<a-tree-select
style="width:100%"
:dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
:treeData="treeData"
:disabled="disable"
v-model="model.parentId"
placeholder="无">
</a-tree-select>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="英文名称">
<a-input placeholder="请输入英文名称" v-decorator="['departNameEn', {'initialValue':''}]"/>
</a-form-item>
</template>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="缩写">
<a-input placeholder="请输入手机号" v-decorator="['departNameAbbr', validatorRules.departNameAbbr ]"/>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="部门编码">
<a-input disabled placeholder="请输入部门编码" v-decorator="['orgCode', validatorRules.orgCode ]"/>
</a-form-item>
<template v-if="orgCategoryDisabled">
<template v-if="orgTypeDisabled">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="排序">
<a-input-number v-decorator="[ 'departOrder',{'initialValue':0}]"/>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
@ -135,14 +156,9 @@
<!--</template>-->
</a-form-item>
</template>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="排序">
<a-input-number v-decorator="[ 'departOrder',{'initialValue':0}]"/>
</a-form-item>
<template v-if="orgCategoryDisabled">
<template v-if="orgTypeDisabled">
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
@ -158,12 +174,13 @@
</template>
<!--<a-form-item-->
<!--:labelCol="labelCol"-->
<!--:wrapperCol="wrapperCol"-->
<!--label="备注">-->
<!--<a-textarea placeholder="请输入备注" v-decorator="['memo', {'initialValue':''}]"/>-->
<!--</a-form-item>-->
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="备注">
<a-textarea placeholder="请输入备注" v-decorator="['memo', {'initialValue':''}]"/>
</a-form-item>
</a-form>
<div class="anty-form-btn">
<a-button @click="emptyCurrForm" type="default" htmlType="button" icon="sync">重置</a-button>
@ -189,7 +206,7 @@
import DepartModal from './modules/DepartModal'
import pick from 'lodash.pick'
import {queryDepartTreeList, searchByKeywords, deleteByDepartId} from '@/api/api'
import {httpAction, deleteAction} from '@/api/manage'
import {httpAction, deleteAction,getAction} from '@/api/manage'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import DepartAuthModal from './modules/DepartAuthModal'
//
@ -198,6 +215,15 @@
title: '部门名称',
dataIndex: 'departName'
},
{
title: '英文名称',
dataIndex: 'departNameEn'
},
{
title: '缩写',
dataIndex: 'departNameAbbr'
},
{
title: '',
align: 'center',
@ -282,7 +308,8 @@
departName: {rules: [{required: true, message: '请输入部门/部门名称!'}]},
orgCode: {rules: [{required: true, message: '请输入部门编码!'}]},
orgCategory: {rules: [{required: true, message: '请输入部门类型!'}]},
mobile: {rules: [{validator: this.validateMobile}]}
mobile: {rules: [{validator: this.validateMobile}]},
departNameAbbr: {rules: [{required: true,validator: this.validatedepartNameAbbr}]}
},
url: {
delete: '/sys/sysDepart/delete',
@ -290,8 +317,10 @@
deleteBatch: '/sys/sysDepart/deleteBatch',
exportXlsUrl: "sys/sysDepart/exportXls",
importExcelUrl: "sys/sysDepart/importExcel",
validatedepartNameAbbrUrl: "sys/sysDepart/validatedepartNameAbbr",
},
orgCategoryDisabled:false,
orgTypeDisabled:false,
}
},
computed: {
@ -375,9 +404,6 @@
ids += this.checkedKeys[a] + ','
}
var that = this
this.$confirm( '确定要删除所选中的 ' + this.checkedKeys.length + ' 条数据,以及子节点数据吗?','确认删除',
{
confirmButtonText: '确定',
@ -458,6 +484,12 @@
}else{
this.orgCategoryDisabled =true;
}
if(record.orgType == '1'){
this.orgTypeDisabled =true ;
}else{
this.orgTypeDisabled =false;
}
this.$nextTick(() => {
// this.form.getFieldDecorator('fax', {initialValue: ''})
this.form.setFieldsValue(pick(record, 'departName','orgCategory', 'orgCode', 'departOrder', 'mobile', 'fax', 'address', 'memo'))
@ -634,9 +666,30 @@
this.getAllKeys(node.children[a])
}
}
}
},
// <!---- author:os_chengtgen -- date:20190827 -- for: =======------>
//
validatedepartNameAbbr(rule, value, callback){
let reg = /^[_a-zA-Z0-9]+$/
let reg2 = /^.{4,4}$/
// 618
if (value !== '' && !reg.test(value)) {
callback('只允许字母、数字、下划线')
} else if (value !== '' && !reg2.test(value)) {
callback('长度为4个字符')
} else {
getAction(this.url.validatedepartNameAbbrUrl,{'name':value}).then((res) => {
if (res.success) {
callback()
}else{
// this.$message.error(res.message);
callback('缩写已存在,请重新输入')
}
})
}
},
},
created() {
this.currFlowId = this.$route.params.id

@ -30,6 +30,20 @@
:disabled="condition">
</a-tree-select>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="英文名称">
<a-input placeholder="请输入英文名称" v-decorator="['departNameEn', {'initialValue':''}]"/>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="缩写">
<a-input placeholder="请输入手机号" v-decorator="['departNameAbbr', validatorRules.departNameAbbr ]"/>
</a-form-item>
<template v-if="seen">
<a-form-item
:labelCol="labelCol"
@ -85,12 +99,12 @@
<a-input placeholder="请输入地址" v-decorator="['address', {}]"/>
</a-form-item>
</template>
<!--<a-form-item-->
<!--:labelCol="labelCol"-->
<!--:wrapperCol="wrapperCol"-->
<!--label="备注">-->
<!--<a-textarea placeholder="请输入备注" v-decorator="['memo', {}]"/>-->
<!--</a-form-item>-->
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="备注">
<a-textarea placeholder="请输入备注" v-decorator="['memo', {}]"/>
</a-form-item>
</a-form>
</a-spin>
@ -98,7 +112,7 @@
</template>
<script>
import {httpAction} from '@/api/manage'
import {httpAction,getAction} from '@/api/manage'
import {queryIdTree} from '@/api/api'
import pick from 'lodash.pick'
import ATextarea from 'ant-design-vue/es/input/TextArea'
@ -134,10 +148,12 @@
validatorRules: {
departName: {rules: [{required: true, message: '请输入部门/部门名称!'}]},
orgCode: {rules: [{required: true, message: '请输入部门编码!'}]},
mobile: {rules: [{validator: this.validateMobile}]}
mobile: {rules: [{validator: this.validateMobile}]},
departNameAbbr: {rules: [{required: true,validator: this.validatedepartNameAbbr}]}
},
url: {
add: "/sys/sysDepart/add",
validatedepartNameAbbrUrl: "sys/sysDepart/validatedepartNameAbbr",
},
dictDisabled: true,
}
@ -222,8 +238,31 @@
} else {
callback("您的手机号码格式不正确!");
}
},
//
validatedepartNameAbbr(rule, value, callback){
let reg = /^[_a-zA-Z0-9]+$/
let reg2 = /^.{4,4}$/
// 618
if (value !== '' && !reg.test(value)) {
callback('只允许字母、数字、下划线')
} else if (value !== '' && !reg2.test(value)) {
callback('长度为4个字符')
} else {
//
}
console.log("validatedepartNameAbbrUrl");
console.log(value);
getAction(this.url.validatedepartNameAbbrUrl,{'name':value}).then((res) => {
if (res.success) {
callback()
}else{
// this.$message.error(res.message);
callback('缩写已存在,请重新输入')
}
})
}
},
}
}
</script>

@ -60,6 +60,7 @@ export default {
},
data() {
return {
// biaoTi: '',
description: '班组成员表管理管理页面',
//
columns: [
@ -89,7 +90,7 @@ export default {
dataIndex: 'workNo'
},
{
title: '成员名',
title: '成员名',
align: "center",
dataIndex: 'userId'
},
@ -144,8 +145,8 @@ export default {
this.groupxId = this.$route.query.groupxId;
this.groupName = this.$route.query.groupName;
this.departName = this.$route.query.departName;
// this.biaoTi = this.$route.query.styleNames+"";
console.log("*******departName:" + this.departName)
// this.biaoTi = this.departName + "" + "";
// console.log("*******departName:" + this.departName)
this.loadRouteType = true;
}
},

@ -116,9 +116,9 @@
<a>删除</a>
</a-popconfirm>
<a-divider type="vertical"/>
<a @click="up(record.id)">升序</a>
<a @click="up(record.id)">前移</a>
<a-divider type="vertical"/>
<a @click="down(record.id)">降序</a>
<a @click="down(record.id)">后移</a>
</span>
</a-table>
</div>
@ -244,6 +244,7 @@ export default {
'stationId': record.id,
'stationName': record.stationName,
'stationNum': record.stationNum,
'departName': record.departName,
},
});
},
@ -254,6 +255,7 @@ export default {
'stationId': record.id,
'stationName': record.stationName,
'stationNum': record.stationNum,
'departName': record.departName,
},
});
},

@ -1,56 +1,11 @@
<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="工位ID">-->
<!-- <a-input placeholder="请输入工位ID" v-model="queryParam.stationId"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="设备ID">-->
<!-- <a-input placeholder="请输入设备ID" v-model="queryParam.machineId"></a-input>-->
<!-- </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>-->
<p style="font-size: 30px;color:#333; padding-left: 40% ">{{ biaoTi }}</p>
<!-- 操作按钮区域 -->
<div class="table-operator">
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<a-button @click="zyStyleFabricHandleAdd(stationId)" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('1')">导出</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>-->
<!-- <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>-->
<a-button type="primary" @click="fanHui()">返回</a-button>
</div>
@ -175,6 +130,8 @@ export default {
stationId: "",
stationName: "",
stationNum: "",
departName: "",
biaoTi:"",
dictOptions: {},
// superFieldList: [],
}
@ -205,8 +162,8 @@ export default {
this.stationId = this.$route.query.stationId;
this.stationName = this.$route.query.stationName;
this.stationNum = this.$route.query.stationNum;
// this.biaoTi = this.$route.query.styleNames+"";
// console.log("*******stationId:" + this.stationId)
this.departName = this.$route.query.departName;
this.biaoTi = this.departName + this.stationName + "设备管理";
this.loadRouteType = true;
}
},

@ -1,43 +1,12 @@
<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="工位ID">-->
<!-- <a-input placeholder="请输入工位ID" v-model="queryParam.stationId"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="工具ID">-->
<!-- <a-input placeholder="请输入工具ID" v-model="queryParam.toolsId"></a-input>-->
<!-- </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>-->
<p style="font-size: 30px;color:#333; padding-left: 40% ">{{ biaoTi }}</p>
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="zyStyleFabricHandleAdd(stationId)" type="primary" icon="plus">新增</a-button>
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <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>-->
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel">
@ -78,17 +47,6 @@
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
<!-- <a-divider type="vertical"/>-->
<!-- <a-dropdown>-->
<!-- <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- </a-dropdown>-->
</span>
</a-table>
@ -116,6 +74,7 @@ export default {
},
data() {
return {
biaoTi: '',
description: '工位工具管理页面',
//
columns: [
@ -147,7 +106,7 @@ export default {
{
title: '工具编码',
align: "center",
dataIndex: 'nums'
dataIndex: 'code'
},
{
title: '工具名称',
@ -173,6 +132,7 @@ export default {
stationId: "",
stationName: "",
stationNum: "",
departName: "",
dictOptions: {},
// superFieldList: [],
}
@ -203,7 +163,8 @@ export default {
this.stationId = this.$route.query.stationId;
this.stationName = this.$route.query.stationName;
this.stationNum = this.$route.query.stationNum;
// this.biaoTi = this.$route.query.styleNames+"";
this.departName = this.$route.query.departName;
this.biaoTi = this.departName + this.stationName + "工位管理";
// console.log("*******stationId:" + this.stationId)
this.loadRouteType = true;
}

@ -11,13 +11,22 @@
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departId" label="部门">
<!-- <a-input placeholder="请输入部门编号" v-model="model.departId"/>-->
<!-- <j-select-depart placeholder="请选择部门" v-model="model.departId"/>-->
<j-dict-select-tag type="list" v-model="model.departId" dictCode="sys_depart,depart_name,id,org_category='2'"
@change="getEnterprisesManagerValChange()"
placeholder="请选择部门"/>
<!-- <j-dict-select-tag type="list" v-model="model.departId" dictCode="sys_depart,depart_name,id,org_category='2'"-->
<!-- @change="getEnterprisesManagerValChange()"-->
<!-- placeholder="请选择部门"/>-->
<j-tree-select v-model="model.departId"
dict="sys_depart,depart_name,id"
pidField="parent_id"
placeholder="请选择车间"
condition='{"org_category":"2"}'
hasChildField="1"
@change="getEnterprisesManagerValChange()"
>
</j-tree-select>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="groupName" label="班组名称">
@ -117,6 +126,7 @@ export default {
methods: {
getEnterprisesManagerValChange() {
console.log("the departId=", this.model.departId)
this.enterprisesManager = "sys_user,realname,id,id in (select user_id from sys_user_depart where dep_id='" + this.model.departId + "')";
// this.enterprisesManager = "zy_process,process_name,id,id in(select process_id from zy_product_process where product_id='1')";
},

@ -12,14 +12,19 @@
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<!-- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departId"-->
<!-- label="车间ID">-->
<!-- <a-input placeholder="请输入车间ID" v-model="model.departId"/>-->
<!-- </a-form-model-item>-->
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departId" label="车间名称">
<!-- <a-input placeholder="请输入部门编号" v-model="model.departId"/>-->
<!-- <j-select-depart placeholder="请选择车间" v-model="model.departId"/>-->
<j-dict-select-tag type="list" v-model="model.departId" dictCode="sys_depart,depart_name,id,org_category='2'" placeholder="请选择车间" />
<!-- <j-dict-select-tag type="list" v-model="model.departId" dictCode="sys_depart,depart_name,id,org_category='2'" placeholder="请选择车间" />-->
<j-tree-select v-model="model.departId"
dict="sys_depart,depart_name,id"
pidField="parent_id"
placeholder="请选择车间"
condition='{"org_category":"2"}'
hasChildField="1"
>
</j-tree-select>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="stationName" label="工位名称">
<a-input placeholder="请输入工位名称" v-model="model.stationName"/>
@ -37,7 +42,7 @@
</template>
<script>
import {httpAction} from '@/api/manage'
import {getAction, httpAction} from '@/api/manage'
import moment from "moment"
export default {
@ -79,6 +84,20 @@ export default {
created() {
},
methods: {
async bianhao() {
//var n=6
getAction(this.url.sort, {id: this.model.clothsTypeId}).then((res) => {
//let num = res.result;
console.log("+6++++aaa: " + res.result)
//num=num.toString()
//while(num.length<n){
//num="0"+num
//}
//console.log(num)
this.model.nums = res.result;
})
},
add() {
//
this.edit({});

@ -23,7 +23,7 @@
<script>
import {httpAction} from '@/api/manage'
import moment from "moment"
import ZyToolListRef from "@views/erp/tool/ZyToolListRef"
import ZyToolListRef from "@views/tool/tool/ZyToolListRef"
export default {
name: "StationToolModal",

@ -0,0 +1,137 @@
<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-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code">
<a-input v-model="queryParam.code" placeholder="请输入编号" ></a-input>
</a-form-model-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="queryParam.name" placeholder="请输入名称"></a-input>
</a-form-model-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>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 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">
</a-table>
</div>
<zy-tool-modal ref="modalForm" @ok="modalFormOk"></zy-tool-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ZyToolModal from './modules/ZyToolModal'
export default {
name: 'ZyToolList',
mixins:[JeecgListMixin, mixinDevice],
components: {
ZyToolModal
},
data () {
return {
description: '工具表管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'工具编号',
align:"center",
dataIndex: 'code'
},
{
title:'工具名称',
align:"center",
dataIndex: 'name'
},
],
url: {
list: "/zytool/zyTool/list",
delete: "/zytool/zyTool/delete",
deleteBatch: "/zytool/zyTool/deleteBatch",
exportXlsUrl: "/zytool/zyTool/exportXls",
importExcelUrl: "zytool/zyTool/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:'typeCode',text:'类型编号',dictCode:''})
fieldList.push({type:'string',value:'brandId',text:'工具品牌',dictCode:''})
fieldList.push({type:'string',value:'modelId',text:'工具型号',dictCode:''})
fieldList.push({type:'string',value:'code',text:'工具编号',dictCode:''})
fieldList.push({type:'string',value:'name',text:'工具名称',dictCode:''})
fieldList.push({type:'date',value:'buydate',text:'购买时间'})
fieldList.push({type:'sel_user',value:'agent',text:'经办人'})
fieldList.push({type:'string',value:'status',text:'工具状态',dictCode:''})
fieldList.push({type:'string',value:'qrcode',text:'二维码',dictCode:''})
fieldList.push({type:'date',value:'maintenancecycle',text:'维护周期'})
fieldList.push({type:'sel_user',value:'administrator',text:'管理人'})
fieldList.push({type:'date',value:'maintenancedate',text:'上次维护时间'})
fieldList.push({type:'string',value:'img',text:'工具图片',dictCode:''})
fieldList.push({type:'string',value:'img3d',text:'3d模型',dictCode:''})
this.superFieldList = fieldList
}
}
}
</script>

@ -11,27 +11,27 @@
<!-- 操作按钮区域 -->
<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>
<!--<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>
<!--<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>
<!--<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"
@ -68,22 +68,22 @@
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a @click="handleDetail(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>
<!--<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>

@ -4,11 +4,11 @@
<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.ischild" dictCode="ischild"/>
</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.ischild" dictCode="ischild"/>-->
<!--</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.ordersNum"></a-input>
@ -19,46 +19,46 @@
<j-dict-select-tag placeholder="请选择订单类型" v-model="queryParam.ordersType" dictCode="orders_type"/>
</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.paymentMethod" dictCode="payment_method"/>
</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.paymentStatus" dictCode="payment_status"/>
</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.accountNo"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="城市">
<j-area-linkage type="cascader" v-model="queryParam.cityId" placeholder="请选择省市区"/>
</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.invoiceCustomerType" dictCode="invoice_customer_type"/>
</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.invoiceType" dictCode="invoice_type"/>
</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.accountNumber"></a-input>
</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.logisticsEnterprisesId"/>
</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.paymentMethod" dictCode="payment_method"/>-->
<!--</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.paymentStatus" dictCode="payment_status"/>-->
<!--</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.accountNo"></a-input>-->
<!--</a-form-item>-->
<!--</a-col>-->
<!--<a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!--<a-form-item label="城市">-->
<!--<j-area-linkage type="cascader" v-model="queryParam.cityId" placeholder="请选择省市区"/>-->
<!--</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.invoiceCustomerType" dictCode="invoice_customer_type"/>-->
<!--</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.invoiceType" dictCode="invoice_type"/>-->
<!--</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.accountNumber"></a-input>-->
<!--</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.logisticsEnterprisesId"/>-->
<!--</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.deliveryStatus" dictCode="delivery_status"/>
@ -94,10 +94,10 @@
<!-- 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>
<!--<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"
@ -211,30 +211,25 @@
}
},
// {
// title:'',
// title:'()',
// align:"center",
// dataIndex: 'ordersNum'
// dataIndex: 'money'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'freight'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'promotionPrice'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'actualPayment'
// },
{
title:'总金额(元)',
align:"center",
dataIndex: 'money'
},
{
title:'运费',
align:"center",
dataIndex: 'freight'
},
{
title:'促销',
align:"center",
dataIndex: 'promotionPrice'
},
{
title:'实付款',
align:"center",
dataIndex: 'actualPayment'
},
{
title:'交货期(天)',
align:"center",
@ -246,7 +241,7 @@
dataIndex: 'ordersType_dictText'
},
{
title:'客',
title:'客',
align:"center",
dataIndex: 'userId_dictText'
},
@ -255,50 +250,50 @@
// align:"center",
// dataIndex: 'goodsQuantity'
// },
{
title:'支付方式',
align:"center",
dataIndex: 'paymentMethod_dictText'
},
// {
// title:'',
// align:"center",
// dataIndex: 'paymentMethod_dictText'
// },
{
title:'支付状态',
align:"center",
dataIndex: 'paymentStatus_dictText'
},
{
title:'账号/卡号',
align:"center",
dataIndex: 'accountNo'
},
{
title:'开户银行',
align:"center",
dataIndex: 'bankDeposit'
},
{
title:'支付时间',
align:"center",
dataIndex: 'paymentTime',
customRender:function (text) {
return !text?"":(text.length>10?text.substr(0,10):text)
}
},
{
title:'城市',
align:"center",
dataIndex: 'cityId',
scopedSlots: {customRender: 'pcaSlot'}
},
{
title:'地址',
align:"center",
dataIndex: 'address'
},
{
title:'邮编',
align:"center",
dataIndex: 'zipCode'
},
// {
// title:'/',
// align:"center",
// dataIndex: 'accountNo'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'bankDeposit'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'paymentTime',
// customRender:function (text) {
// return !text?"":(text.length>10?text.substr(0,10):text)
// }
// },
// {
// title:'',
// align:"center",
// dataIndex: 'cityId',
// scopedSlots: {customRender: 'pcaSlot'}
// },
// {
// title:'',
// align:"center",
// dataIndex: 'address'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'zipCode'
// },
{
title:'收货人',
align:"center",
@ -309,41 +304,41 @@
align:"center",
dataIndex: 'mobile'
},
{
title:'发票客户类型',
align:"center",
dataIndex: 'invoiceCustomerType_dictText'
},
{
title:'发票类型',
align:"center",
dataIndex: 'invoiceType_dictText'
},
{
title:'纳税人识别号',
align:"center",
dataIndex: 'taxIdentificationNumber'
},
{
title:'开票地址',
align:"center",
dataIndex: 'addressBilling'
},
{
title:'电话',
align:"center",
dataIndex: 'telephone'
},
{
title:'公户开户行',
align:"center",
dataIndex: 'bankPublic'
},
{
title:'公户账号',
align:"center",
dataIndex: 'accountNumber'
},
// {
// title:'',
// align:"center",
// dataIndex: 'invoiceCustomerType_dictText'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'invoiceType_dictText'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'taxIdentificationNumber'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'addressBilling'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'telephone'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'bankPublic'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'accountNumber'
// },
{
title:'销售门店',
align:"center",
@ -354,11 +349,11 @@
align:"center",
dataIndex: 'salespersonId_dictText'
},
{
title:'物流企业',
align:"center",
dataIndex: 'logisticsEnterprisesId_dictText'
},
// {
// title:'',
// align:"center",
// dataIndex: 'logisticsEnterprisesId_dictText'
// },
{
title:'交付状态',
align:"center",
@ -398,7 +393,7 @@
},
methods: {
paidan(record){
this.$refs.productionForm.showModal(record.id)
this.$refs.productionForm.showModal(record.id,record.ordersNum+"订单派单管理")
// getAction(this.url.paidan,{id:record.id}).then((res) => {
// if (res.success) {

@ -6,29 +6,27 @@
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="工单编号">
<a-input placeholder="请输入工单编号" v-model="queryParam.workCode"></a-input>
<a-input placeholder="请输入工单编号" v-model="queryParam.productCode"></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.orderCode"></a-input>
<a-input placeholder="请输入订单编号" v-model="queryParam.ordersNum"></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.realname"></a-input>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="客户名称">
<a-input placeholder="请输入客户名称" v-model="queryParam.customerName"></a-input>
</a-form-item>
</a-col>
</template>
<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>
<!--<a @click="handleToggleSearch" style="margin-left: 8px">-->
<!--{{ toggleSearchStatus ? '收起' : '展开' }}-->
<!--<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!--</a>-->
</span>
</a-col>
</a-row>
@ -38,25 +36,25 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<!--<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>
<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>
<!--<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!--<a-button type="primary" icon="import">导入</a-button>-->
<!--</a-upload>-->
<!--<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>
<!--<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"
@ -93,8 +91,8 @@
</template>
<span slot="action" slot-scope="text, record">
<!--<a @click="handleEdit(record)">编辑</a>-->
<!--<a-divider type="vertical" />-->
<a @click="handleProductDetail(record)">产品管理</a>
<a-divider type="vertical" />
<a @click="handleDetail(record)">详情</a>
@ -104,6 +102,7 @@
</div>
<work-order-modal ref="modalForm" @ok="modalFormOk"></work-order-modal>
<zy-product-modal ref="productForm" @ok="modalFormOk"></zy-product-modal>
</a-card>
</template>
@ -113,12 +112,14 @@
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import WorkOrderModal from '@/views/workorder/modules/WorkOrderModal'
import ZyProductModal from '@/views/zyWorkProduct/modules/ZyProductModal'
export default {
name: 'ZyWorkOrderList',
mixins:[JeecgListMixin, mixinDevice],
components: {
WorkOrderModal
WorkOrderModal,
ZyProductModal
},
data () {
return {
@ -135,20 +136,25 @@
return parseInt(index)+1;
}
},
{
title:'订单编号',
align:"center",
dataIndex: 'ordersNum'
},
{
title:'工单编号',
align:"center",
dataIndex: 'productCode'
},
{
title:'订单',
title:'客户名称',
align:"center",
dataIndex: 'ordersId'
dataIndex: 'realname'
},
{
title:'订单商品',
title:'商品名称',
align:"center",
dataIndex: 'orderGoodsId'
dataIndex: 'goodsName'
},
{
title:'商品数量',
@ -160,6 +166,7 @@
align:"center",
dataIndex: 'orderTime'
},
{
title:'交货期',
align:"center",
@ -168,7 +175,7 @@
{
title:'工单状态',
align:"center",
dataIndex: 'workOrderStatus_dictText'
dataIndex: 'workOrderStatusText'
},
{
title:'企业',
@ -204,7 +211,12 @@
},
methods: {
initDictConfig(){
}
},
handleProductDetail(record){
this.$refs.productForm.edit(record);
this.$refs.productForm.title="产品管理";
this.$refs.productForm.disableSubmit = true;
},
}
}
</script>

@ -10,6 +10,7 @@
cancelText="关闭"
>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333; padding-left: 28% ">{{ biaoTi }}</p>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
@ -149,6 +150,7 @@
selectedRowKeys: [],
selectdepRows: [],
selectdepIds: [],
biaoTi:"",
}
},
created() {
@ -162,10 +164,11 @@
methods: {
initDictConfig(){
},
showModal(orderId) {
showModal(orderId,biaoTi) {
this.selectedRowKeys=[]
this.orderId=orderId
this.visible = true;
this.biaoTi=biaoTi
this.loadData();
},
close () {

@ -76,6 +76,16 @@
<j-image-upload isMultiple v-model="model.url"></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="结构图(多副)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="structureDiagram">
<j-image-upload isMultiple v-model="model.structureDiagram"></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="排料图(一副)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="layoutDiagram">
<j-image-upload isMultiple v-model="model.layoutDiagram"></j-image-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>

@ -61,9 +61,9 @@ public class ZyAccessories implements Serializable {
@ApiModelProperty(value = "规格")
private java.lang.String specs;
/**库存量*/
@Excel(name = "库存量", width = 15)
@ApiModelProperty(value = "库存量")
private java.lang.Integer store;
// @Excel(name = "库存量", width = 15)
// @ApiModelProperty(value = "库存量")
// private java.lang.Integer store;
/**供货商信息*/
@Excel(name = "供货商信息", width = 15)
@ApiModelProperty(value = "供货商信息")

@ -265,7 +265,7 @@ public class ZyFabricController extends JeecgController<ZyFabric, IZyFabricServi
@ApiOperation(value="面料表-添加", notes="面料表-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody ZyFabric zyFabric) {
zyFabric.setCreateTime(new Date().toLocaleString());
// zyFabric.setCreateTime(new Date().toLocaleString());
List<ZyFabric> list = zyFabricService.list();
for (ZyFabric zy : list){
if (zy.getName().equals(zyFabric.getName())){
@ -286,7 +286,7 @@ public class ZyFabricController extends JeecgController<ZyFabric, IZyFabricServi
@ApiOperation(value="面料表-编辑", notes="面料表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@RequestBody ZyFabric zyFabric) {
zyFabric.setUpdateTime(new Date().toLocaleString());
// zyFabric.setUpdateTime(new Date().toLocaleString());
List<ZyFabric> list = zyFabricService.list();
ZyFabric zyFabric1 = zyFabricService.getById(zyFabric.getId());
list.remove(zyFabric1);

@ -144,20 +144,20 @@ public class ZyFabric implements Serializable {
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建时间*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
private java.lang.String createTime;
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新时间*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间")
private java.lang.String updateTime;
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;

@ -29,7 +29,7 @@ import java.net.UnknownHostException;
@Slf4j
@SpringBootApplication(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
,org.activiti.spring.boot.SecurityAutoConfiguration.class
// ,org.activiti.spring.boot.SecurityAutoConfiguration.class
})
@EnableScheduling
@EnableTransactionManagement

@ -46,7 +46,7 @@ public class ProductComponentProcess implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
//@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 表暂未设计暂时不打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productComponentId;
/**产品模块部件id*/
@Excel(name = "产品模块部件id", width = 15)

@ -47,7 +47,7 @@ public class ProductModuleComponent implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
//@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 表暂未设计暂时不打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**产品模块id*/
@Excel(name = "产品模块id", width = 15)

@ -48,7 +48,7 @@ public class ProductModuleProcess implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
//@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 表暂未设计暂时不打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**产品模块id*/
@Excel(name = "产品模块id", width = 15)

@ -48,7 +48,7 @@ public class ProductAccessories implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
// @Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 由于当前产品还没有,需要后期打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**辅料id*/
@Excel(name = "辅料id", width = 15)

@ -48,7 +48,7 @@ public class ProductFabric implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
// @Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 由于当前产品还没有,需要后期打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**面料id*/
@Excel(name = "面料id", width = 15)

@ -44,7 +44,7 @@ public class ProductMachine implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
// @Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 由于当前产品还没有,需要后期打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**设备d*/
@Excel(name = "设备d", width = 15)

@ -45,7 +45,7 @@ public class ProductOperationtool implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
// @Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 由于当前产品还没有,需要后期打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**工具id*/
@Excel(name = "工具id", width = 15)

@ -56,7 +56,7 @@ public class ZyProductProcess implements Serializable {
/**产品id*/
@Excel(name = "产品id", width = 15)
@ApiModelProperty(value = "产品id")
// @Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id") 由于当前产品还没有,需要后期打开
@Dict(dictTable = "zy_product",dicText = "product_code",dicCode = "id")
private String productId;
/**工序id*/
@Excel(name = "工序id", width = 15)

@ -10,6 +10,7 @@ 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.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.exception.JeecgBootException;
@ -18,6 +19,8 @@ import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.vo.ProcessDataVo;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.jeecg.modules.team.entity.Station;
import org.jeecg.modules.team.service.IStationService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
@ -44,6 +47,9 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
@Autowired
private IZyPlanProcessService zyPlanProcessService;
@Autowired
private IStationService iStationService;
/**
* 分页列表查询
*
@ -109,8 +115,9 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
HttpServletRequest req) {
QueryWrapper<ZyPlanProcess> queryWrapper = QueryGenerator.initQueryWrapper(zyPlanProcess, req.getParameterMap());
Page<ZyPlanProcess> page = new Page<ZyPlanProcess>(pageNo, pageSize);
List<ProcessDataVo> processDatalist = zyPlanProcessService.getProcessDatalist(zyPlanProcess);
PageList<ProcessDataVo> processDataVos = new PageList<>(processDatalist, processDatalist.size());
// List<ProcessDataVo> processDatalist = zyPlanProcessService.getProcessDatalist(zyPlanProcess);
List<ZyPlanProcess> processDatalist = zyPlanProcessService.getProcessDatalist(zyPlanProcess);
// PageList<ProcessDataVo> processDataVos = new PageList<>(processDatalist, processDatalist.size());
return Result.OK(processDatalist);
}
@ -156,14 +163,17 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
return Result.OK("添加成功!");
}
@ApiOperation(value = "计划工序管理-批量添加工序、工位、设备", notes = "计划工序管理-批量添加工序、工位、设备")
@ApiOperation(value = "计划工序管理-批量更新工序、工位、设备", notes = "计划工序管理-批量更新工序、工位、设备")
@PostMapping(value = "/addProcessBatch")
public Result<?> addProcessBatch(@RequestBody List<ZyPlanProcess> zyPlanProcessList) {
if (!ObjectUtils.isEmpty(zyPlanProcessList)) {
zyPlanProcessService.remove(new LambdaQueryWrapper<ZyPlanProcess>()
.eq(ZyPlanProcess::getPlanId, zyPlanProcessList.get(0).getPlanId()));
zyPlanProcessService.saveBatch(zyPlanProcessList);
// zyPlanProcessService.remove(new LambdaQueryWrapper<ZyPlanProcess>()
// .eq(ZyPlanProcess::getPlanId, zyPlanProcessList.get(0).getPlanId()));
zyPlanProcessList.forEach(e -> {
Station station = iStationService.getById(e.getStationId());
e.setStationName(StringUtils.isNotBlank(station.getStationName()) ? station.getStationName() : "");
});
zyPlanProcessService.saveOrUpdateBatch(zyPlanProcessList);
}
return Result.OK("添加成功!");
}

@ -1,22 +1,32 @@
package org.jeecg.modules.productplan.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.apache.commons.lang3.StringUtils;
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.ZyProductPlan;
import org.jeecg.modules.productplan.entity.vo.PaiWeiTuVo;
import org.jeecg.modules.productplan.service.IZyProductPlanService;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.workproduct.entity.ZyProduct;
import org.jeecg.modules.workproduct.service.IZyProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.jws.Oneway;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
@ -35,6 +45,14 @@ public class ZyProductPlanController extends JeecgController<ZyProductPlan, IZyP
@Autowired
private IZyProductPlanService zyProductPlanService;
@Autowired
private IZyProductService iZyProductService;
@Autowired
private ISysDepartService iSysDepartService;
@Autowired
private ISysUserService iSysUserService;
/**
* 分页列表查询
*
@ -44,7 +62,7 @@ public class ZyProductPlanController extends JeecgController<ZyProductPlan, IZyP
* @param req
* @return
*/
@AutoLog(value = "生产计划-分页列表查询")
// @AutoLog(value = "生产计划-分页列表查询")
@ApiOperation(value = "生产计划-分页列表查询", notes = "生产计划-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(ZyProductPlan zyProductPlan,
@ -57,16 +75,33 @@ public class ZyProductPlanController extends JeecgController<ZyProductPlan, IZyP
return Result.OK(pageList);
}
@ApiOperation(value = "生产计划-排位图", notes = "生产计划-排位图")
@GetMapping(value = "/paiweitu")
public Result<?> getPaiweitu(ZyProductPlan zyProductPlan, HttpServletRequest request) {
PaiWeiTuVo paiweitu = zyProductPlanService.paiweitu(zyProductPlan);
return Result.OK(paiweitu);
}
/**
* 添加
*
* @param zyProductPlan
* @return
*/
@AutoLog(value = "生产计划-添加")
// @AutoLog(value = "生产计划-添加")
@ApiOperation(value = "生产计划-添加", notes = "生产计划-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody ZyProductPlan zyProductPlan) {
String productCode = zyProductPlan.getProductCode();
ZyProduct zyProduct = iZyProductService.getOne(new LambdaQueryWrapper<ZyProduct>().eq(ZyProduct::getWorkOrderId, productCode));
zyProductPlan.setProductNo(StringUtils.isNotBlank(zyProduct.getProductCode()) ? zyProduct.getProductCode() : "");
zyProductPlan.setProductName(StringUtils.isNotBlank(zyProduct.getProductName()) ? zyProduct.getProductName() : "");
if (StringUtils.isNotBlank(zyProduct.getEnterprisesId())) {
SysDepart sysDepart = iSysDepartService.getById(zyProduct.getEnterprisesId());
zyProductPlan.setProductOrg(StringUtils.isNotBlank(sysDepart.getDepartName()) ? sysDepart.getDepartName() : "");
}
SysUser sysUser = iSysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getRealname, zyProductPlan.getTeamLeader()));
zyProductPlan.setTeamLeader(sysUser.getUsername());
zyProductPlanService.save(zyProductPlan);
//TODO 更新work_order表work_order_status为“1” (不能为其新增生产计划)
return Result.OK("添加成功!");

@ -2,6 +2,7 @@ package org.jeecg.modules.productplan.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -11,11 +12,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.team.vo.StationVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description: 生产计划工序
@ -81,6 +85,12 @@ public class ZyPlanProcess implements Serializable {
@ApiModelProperty(value = "工位id")
@Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
private String stationId;
@ApiModelProperty(value = "工序名称")
private String stationName;
@TableField(exist = false)
private List<StationVo> stationIdList;
/**
* 设备id列表
*/
@ -108,15 +118,19 @@ public class ZyPlanProcess implements Serializable {
*/
@Excel(name = "前导工序", width = 15)
@ApiModelProperty(value = "前导工序")
@Dict(dictTable = "zy_process", dicText = "process_name", dicCode = "id")
// @Dict(dictTable = "zy_process", dicText = "process_name", dicCode = "id")
private String proProcess;
private String proProcessName;
/**
* 后导工序
*/
@Excel(name = "后导工序", width = 15)
@ApiModelProperty(value = "后导工序")
@Dict(dictTable = "zy_process", dicText = "process_name", dicCode = "id")
// @Dict(dictTable = "zy_process", dicText = "process_name", dicCode = "id")
private String postProcess;
private String postProcessName;
/**
* 输入产品
*/

@ -64,6 +64,15 @@ public class ZyProductPlan implements Serializable {
@Excel(name = "工单编号", width = 15)
@ApiModelProperty(value = "工单编号")
private String productCode;
//产品编码
private String productNo;
//产品名称
private String productName;
//生产企业
private String productOrg;
/**
* 车间id
*/
@ -76,6 +85,7 @@ public class ZyProductPlan implements Serializable {
*/
@Excel(name = "车间负责人", width = 15)
@ApiModelProperty(value = "车间负责人")
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
private String responsiblePerson;
/**
* 班组
@ -89,6 +99,7 @@ public class ZyProductPlan implements Serializable {
*/
@Excel(name = "组长", width = 15)
@ApiModelProperty(value = "组长")
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
private String teamLeader;
/**
* 生产开始时间
@ -123,6 +134,7 @@ public class ZyProductPlan implements Serializable {
*/
@Excel(name = "审核人", width = 15)
@ApiModelProperty(value = "审核人")
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
private String auditBy;
/**
* 审核时间

@ -0,0 +1,31 @@
package org.jeecg.modules.productplan.entity.vo;
import lombok.Data;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import java.util.List;
@Data
public class PaiWeiTuVo {
// 订单总件数
private Integer goodsNum;
// 生产人数
private Integer memberNum;
// 客户名称
private String user;
// 制单号
private String makerId;
// 款式号
private String style;
// 班组
private String teamName;
// 标准工时(分)
private Integer duration;
private List<ZyPlanProcess> list;
}

@ -17,7 +17,7 @@ public class ProcessDataVo implements Serializable {
private static final long serialVersionUID = 1009888L;
// private String id;
private String id;
//工单id
private String workOrderId;
@ -35,6 +35,9 @@ public class ProcessDataVo implements Serializable {
//工位
private List<StationVo> stationList;
//工位
private List<StationVo> stationId;
private String groupName;
//班组成员列表

@ -15,7 +15,7 @@ import java.util.List;
*/
public interface IZyPlanProcessService extends IService<ZyPlanProcess> {
List<ProcessDataVo> getProcessDatalist(ZyPlanProcess zyPlanProcess);
List<ZyPlanProcess> getProcessDatalist(ZyPlanProcess zyPlanProcess);
List<ProcessDataVo> getTeamDatalist(ZyPlanProcess zyPlanProcess);
}

@ -2,6 +2,9 @@ package org.jeecg.modules.productplan.service;
import org.jeecg.modules.productplan.entity.ZyProductPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.productplan.entity.vo.PaiWeiTuVo;
import java.util.List;
/**
* @Description: 生产计划
@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IZyProductPlanService extends IService<ZyProductPlan> {
PaiWeiTuVo paiweitu(ZyProductPlan zyProductPlan);
}

@ -25,13 +25,17 @@ import org.jeecg.modules.team.service.IGroupxService;
import org.jeecg.modules.team.service.IStationService;
import org.jeecg.modules.team.vo.GroupxMemeberVo;
import org.jeecg.modules.team.vo.StationVo;
import org.jeecg.modules.workproduct.entity.ZyProduct;
import org.jeecg.modules.workproduct.service.IZyProductService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
/**
@ -63,8 +67,11 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
@Autowired
private IGroupxService iGroupxService;
@Autowired
private IZyProductService iZyProductService;
public List<ProcessDataVo> getProcessDatalist(ZyPlanProcess zyPlanProcess) {
public List<ZyPlanProcess> getProcessDatalist(ZyPlanProcess zyPlanProcess) {
//生产计划id
String planId = zyPlanProcess.getPlanId();
ZyProductPlan zyProductPlan = iZyProductPlanService.getById(planId);
@ -73,61 +80,62 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
}
//工单id
String productCode = zyProductPlan.getProductCode();
String workOrderId = zyProductPlan.getProductCode();
String departId = zyProductPlan.getWorkshopId();
// TODO zy_product产品表,根据工单id获取产品id,
ZyProduct zyProduct = iZyProductService.getOne(new LambdaQueryWrapper<ZyProduct>().eq(ZyProduct::getWorkOrderId, workOrderId));
if (ObjectUtils.isEmpty(zyProduct)) {
throw new JeecgBootException("产品不存在!");
}
List<ProcessDataVo> result = new LinkedList<>();
SysDepart depart = iSysDepartService.getById(departId);
List<Station> stationList = iStationService.list(new LambdaQueryWrapper<Station>().eq(Station::getDepartId, departId));
List<StationVo> stationVoList = new LinkedList<>();
if (!ObjectUtils.isEmpty(stationList)) {
stationList.forEach(en -> {
StationVo stationVo = new StationVo();
stationVo.setId(en.getId());
stationVo.setValue(en.getId());
stationVo.setText(en.getStationName());
stationVo.setTitle(en.getStationName());
stationVoList.add(stationVo);
});
List<ZyPlanProcess> planProcessList = this.list(new LambdaQueryWrapper<ZyPlanProcess>().eq(ZyPlanProcess::getPlanId, planId));
//生产计划工序表没有对应工序时,说明没有制定过该产品的生产工序计划,先把该产品对应的基本工序数据插入到生产计划工序表
if (ObjectUtils.isEmpty(planProcessList)) {
List<ZyProductProcess> productProcessesList = iZyProductProcessService.list(new LambdaQueryWrapper<ZyProductProcess>().eq(ZyProductProcess::getProductId, zyProduct.getId()));
if (!ObjectUtils.isEmpty(planProcessList)) {
List<ZyPlanProcess> saveList = new LinkedList<>();
productProcessesList.forEach(o -> {
ZyPlanProcess en = new ZyPlanProcess();
en.setProcessId(o.getProcessId());
en.setPlanId(planId);
saveList.add(en);
});
this.saveBatch(saveList);
//重新查询已录入工序数据
planProcessList = this.list(new LambdaQueryWrapper<ZyPlanProcess>().eq(ZyPlanProcess::getPlanId, planId));
}
}
List<ZyPlanProcess> planProcessList = this.list(new LambdaQueryWrapper<ZyPlanProcess>().eq(ZyPlanProcess::getPlanId, planId));
//TODO暂定有一条数据时,查询产品工序记录,多条时说明已定制计划工序
if (!ObjectUtils.isEmpty(planProcessList) && planProcessList.size() > 1) {
planProcessList.forEach(e -> {
ProcessDataVo vo = new ProcessDataVo();
vo.setPlanId(planId);
vo.setProcessId(e.getProcessId());
vo.setProcessName(iZyProcessService.getById(e.getProcessId()).getProcessName());
vo.setProductName("产品名称");
vo.setWorkOrderId(productCode);
vo.setDepartId(departId);
vo.setDepartName(depart.getDepartName());
vo.setStationList(stationVoList);
result.add(vo);
});
} else {
//根据产品id获取产品工序列表
// List<ZyProductProcess> productProcessesList = iZyProductProcessService.list(new LambdaQueryWrapper<ZyProductProcess>().eq(ZyProductProcess::getProductId, "产品id"));
List<ZyProductProcess> productProcessesList = iZyProductProcessService.list(new LambdaQueryWrapper<ZyProductProcess>().eq(ZyProductProcess::getProductId, "1"));
if (!ObjectUtils.isEmpty(productProcessesList)) {
productProcessesList.forEach(e -> {
ProcessDataVo vo = new ProcessDataVo();
vo.setPlanId(planId);
vo.setProcessId(e.getProcessId());
vo.setProcessName(iZyProcessService.getById(e.getProcessId()).getProcessName());
vo.setProductId(e.getProductId());
vo.setProductName("产品名称");
vo.setWorkOrderId(productCode);
vo.setDepartId(departId);
vo.setDepartName(depart.getDepartName());
vo.setStationList(stationVoList);
result.add(vo);
if (!ObjectUtils.isEmpty(planProcessList)) {
// SysDepart depart = iSysDepartService.getById(departId);
List<Station> stationList = iStationService.list(new LambdaQueryWrapper<Station>().eq(Station::getDepartId, departId));
List<StationVo> stationVoList = new LinkedList<>();
if (!ObjectUtils.isEmpty(stationList)) {
stationList.forEach(en -> {
StationVo stationVo = new StationVo();
stationVo.setId(en.getId());
stationVo.setValue(en.getId());
stationVo.setText(en.getStationName());
stationVo.setTitle(en.getStationName());
stationVoList.add(stationVo);
});
}
planProcessList.forEach(e -> {
// ProcessDataVo vo = new ProcessDataVo();
// vo.setId(e.getId());
// vo.setPlanId(planId);
// vo.setProcessId(e.getProcessId());
// e.setProcessName(iZyProcessService.getById(e.getProcessId()).getProcessName());
// vo.setProductName("产品名称");
// vo.setWorkOrderId(workOrderId);
// vo.setDepartId(departId);
// vo.setDepartName(depart.getDepartName());
// vo.setStationList(stationVoList);
// vo.setStationId(stationVoList);
e.setStationIdList(stationVoList);
// result.add(vo);
});
}
return result;
return planProcessList;
}
@Override

@ -1,18 +1,110 @@
package org.jeecg.modules.productplan.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.demo.ordergoods.entity.OrderGoods;
import org.jeecg.modules.demo.ordergoods.service.IOrderGoodsService;
import org.jeecg.modules.demo.zyorders.entity.ZyOrders;
import org.jeecg.modules.demo.zyorders.service.IZyOrdersService;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.ZyProductPlan;
import org.jeecg.modules.productplan.entity.vo.PaiWeiTuVo;
import org.jeecg.modules.productplan.mapper.ZyProductPlanMapper;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.jeecg.modules.productplan.service.IZyProductPlanService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.team.entity.Groupx;
import org.jeecg.modules.team.service.IGroupxService;
import org.jeecg.modules.workorder.entity.WorkOrder;
import org.jeecg.modules.workorder.service.IWorkOrderService;
import org.jeecg.modules.zyclothsstyle.entity.ZyClothsStyle;
import org.jeecg.modules.zyclothsstyle.service.IZyClothsStyleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Description: 生产计划
* @Author: jeecg-boot
* @Date: 2022-12-12
* @Date: 2022-12-12
* @Version: V1.0
*/
@Service
public class ZyProductPlanServiceImpl extends ServiceImpl<ZyProductPlanMapper, ZyProductPlan> implements IZyProductPlanService {
@Autowired
private IZyProductPlanService iZyProductPlanService;
@Autowired
private IZyPlanProcessService iZyPlanProcessService;
// 订单基本信息
@Autowired
private IZyOrdersService iZyOrdersService;
// 工单信息
@Autowired
private IWorkOrderService iWorkOrderService;
//商品订单信息
@Autowired
private IOrderGoodsService iOrderGoodsService;
@Autowired
private ISysUserService iSysUserService;
@Autowired
private IZyClothsStyleService iZyClothsStyleService;
@Autowired
private IGroupxService iGroupxService;
@Override
public PaiWeiTuVo paiweitu(ZyProductPlan plan) {
ZyProductPlan productPlan = iZyProductPlanService.getById(plan.getId());
if (ObjectUtils.isEmpty(productPlan)) throw new JeecgBootException(plan.getId() + "生产计划不存在");
// 工单信息
WorkOrder workOrder = iWorkOrderService.getOne(new LambdaQueryWrapper<WorkOrder>().eq(WorkOrder::getProductCode, productPlan.getProductCode()));
if (ObjectUtils.isEmpty(workOrder))
throw new JeecgBootException(productPlan.getProductCode() + "工单信息不存在");
String ordersId = workOrder.getOrdersId();
OrderGoods orderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrdersId, ordersId));
if (ObjectUtils.isEmpty(orderGoods)) throw new JeecgBootException(ordersId + "订单商品信息不存在");
ZyOrders zyOrders = iZyOrdersService.getOne(new LambdaQueryWrapper<ZyOrders>().eq(ZyOrders::getId, ordersId));
if (ObjectUtils.isEmpty(zyOrders)) throw new JeecgBootException(ordersId + "订单信息不存在");
PaiWeiTuVo vo = new PaiWeiTuVo();
ZyClothsStyle zyClothsStyle = iZyClothsStyleService.getById(orderGoods.getStyleId());
vo.setStyle(StringUtils.isNotBlank(zyClothsStyle.getStyleNames()) ? zyClothsStyle.getStyleNames() : "");
vo.setGoodsNum(orderGoods.getGoodsNum());
// SysUser sysUser = iSysUserService.getById(zyOrders.getUserId());
// vo.setUser(StringUtils.isNotBlank(sysUser.getRealname()) ? sysUser.getRealname() : "");
vo.setUser(zyOrders.getUserId());
AtomicInteger memberNum = new AtomicInteger(0);
List<ZyPlanProcess> planProcessList = iZyPlanProcessService
.list(new LambdaQueryWrapper<ZyPlanProcess>()
.eq(ZyPlanProcess::getPlanId, plan.getId()));
if (!ObjectUtils.isEmpty(planProcessList)) {
planProcessList.forEach(e -> {
if (StringUtils.isNotBlank(e.getUserIds())) {
List<String> userList = Arrays.asList(e.getUserIds().split(","));
memberNum.addAndGet(userList.size());
}
});
vo.setList(planProcessList);
}
vo.setMemberNum(memberNum.intValue());
Groupx groupx = iGroupxService.getById(productPlan.getTeamId());
vo.setTeamName(StringUtils.isNotBlank(groupx.getGroupName()) ? groupx.getGroupName() : "");
vo.setDuration(productPlan.getDuration());
return vo;
}
}

@ -527,4 +527,22 @@ public class SysDepartController {
result.setResult(sysUsers);
return result;
}
/**
* 根据部门id获取用户信息
*
* @return
*/
@GetMapping("/validatedepartNameAbbr")
public Result<?> getValidatedepartNameAbbr(@RequestParam(name = "name") String name) {
QueryWrapper<SysDepart> depWrapper=new QueryWrapper<SysDepart>();
depWrapper.eq("depart_name_abbr",name);
List<SysDepart> list = sysDepartService.list(depWrapper);
if(list.size()>0)
{
return Result.error("缩写已存在!");
}
return Result.OK("成功!");
}
}

@ -76,7 +76,7 @@ public class StationToolController extends JeecgController<StationTool, IStation
if (!ObjectUtils.isEmpty(records)) {
records.forEach(e -> {
ZyTool zyTool = iZyToolService.getById(e.getToolsId());
// e.setNums(StringUtils.isNotBlank(zyTool.getNums()) ? zyTool.getNums() : "");
e.setCode(StringUtils.isNotBlank(zyTool.getCode()) ? zyTool.getCode() : "");
});
}
return Result.OK(pageList);

@ -51,7 +51,7 @@ public class StationTool {
@TableField(exist = false)
@ApiModelProperty(value = "工具编码")
private String nums;
private String code;
/**
* 创建日期
*/

@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
/**
* @Description: 车间工位管理
* @Author: jeecg-boot
@ -40,28 +42,40 @@ public class StationServiceImpl extends ServiceImpl<StationMapper, Station> impl
}
@Override
public void up(String id) {
public void down(String id) {
Station entity = this.getById(id);
if (ObjectUtils.isEmpty(entity)) {
throw new JeecgBootException(id + "不存在");
}
Station station = new Station();
station.setId(id);
station.setStationNum(entity.getStationNum() + 1);
this.updateById(station);
List<Station> list = this.list(new LambdaQueryWrapper<Station>().orderByDesc(Station::getStationNum));
Integer maxStationNum = list.get(0).getStationNum();
//最后一条不能下移
if (maxStationNum.intValue() != entity.getStationNum()) {
//先把下一编号减1
Station station1 = this.getOne(new LambdaQueryWrapper<Station>().eq(Station::getStationNum, entity.getStationNum() + 1));
this.lambdaUpdate().set(Station::getStationNum, null).eq(Station::getId, station1.getId()).update();
this.lambdaUpdate().set(Station::getStationNum, null).eq(Station::getId, id).update();
this.lambdaUpdate().set(Station::getStationNum, entity.getStationNum() + 1).eq(Station::getId, id).update();
this.lambdaUpdate().set(Station::getStationNum, entity.getStationNum()).eq(Station::getId, station1.getId()).update();
}
}
@Override
public void down(String id) {
public void up(String id) {
Station entity = this.getById(id);
if (ObjectUtils.isEmpty(entity)) {
throw new JeecgBootException(id + "不存在");
}
//第一条不能上移
if (entity.getStationNum() > 1) {
Station station = new Station();
station.setId(id);
station.setStationNum(entity.getStationNum() - 1);
this.updateById(station);
//先把上一编号加1
Station station1 = this.getOne(new LambdaQueryWrapper<Station>().eq(Station::getStationNum, entity.getStationNum() - 1));
this.lambdaUpdate().set(Station::getStationNum, null).eq(Station::getId, station1.getId()).update();
this.lambdaUpdate().set(Station::getStationNum, null).eq(Station::getId, id).update();
this.lambdaUpdate().set(Station::getStationNum, entity.getStationNum() - 1).eq(Station::getId, id).update();
this.lambdaUpdate().set(Station::getStationNum, entity.getStationNum()).eq(Station::getId, station1.getId()).update();
}
}
}

@ -26,6 +26,7 @@ import org.jeecg.modules.demo.zyorders.service.IZyOrdersService;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.workorder.entity.WorkOrder;
import org.jeecg.modules.workorder.entity.WorkOrderVo;
import org.jeecg.modules.workorder.service.IWorkOrderService;
import org.jeecg.modules.workproduct.entity.ZyProduct;
import org.jeecg.modules.workproduct.service.IZyProductService;
@ -254,13 +255,13 @@ public class WorkOrderController extends JeecgController<WorkOrder, IWorkOrderSe
@AutoLog(value = "工单管理-分页列表查询")
@ApiOperation(value="工单管理-分页列表查询", notes="工单管理工-分页列表查询")
@GetMapping(value = "/workList")
public Result<?> queryPageWorkList(WorkOrder workOrder,
public Result<?> queryPageWorkList(WorkOrderVo workOrder,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<WorkOrder> queryWrapper = QueryGenerator.initQueryWrapper(workOrder, req.getParameterMap());
//QueryWrapper<WorkOrder> queryWrapper = QueryGenerator.initQueryWrapper(workOrder, req.getParameterMap());
Page<WorkOrder> page = new Page<WorkOrder>(pageNo, pageSize);
IPage<WorkOrder> pageList = workOrderService.page(page, queryWrapper);
IPage<WorkOrder> pageList = workOrderService.selectPage(page, workOrder);
return Result.OK(pageList);
}
@ -332,11 +333,11 @@ public class WorkOrderController extends JeecgController<WorkOrder, IWorkOrderSe
csWrapper.eq("style_id",ogModel.getStyleId());
csWrapper.eq("stylemodel_id",ogModel.getModelId());
List<ZyClothSample> csList=zyClothSampleService.list(csWrapper);
// if(csList.size()<=0)
// {
// return Result.error("商品成衣样板不存在,请检查后在操作!");
// }
// ZyClothSample cSampleModel=csList.get(0);
if(csList.size()<=0)
{
return Result.error("商品成衣样板不存在,请检查后在操作!");
}
ZyClothSample cSampleModel=csList.get(0);
int goodNum=ogModel.getGoodsNum();
WorkOrder workOrder=new WorkOrder();
@ -363,6 +364,7 @@ public class WorkOrderController extends JeecgController<WorkOrder, IWorkOrderSe
for(int i=0;i<goodNum;i++)
{
ZyProduct productModel=new ZyProduct();
productModel.setProductName(ogModel.getGoodsName());
productModel.setProductCode(CreateProductCode(workOrder.getProductCode()));// 产品编号
productModel.setWorkOrderId(workOrder.getId());//_ 工单id
// productModel.setProduceTime("");// 生产时间
@ -372,9 +374,9 @@ public class WorkOrderController extends JeecgController<WorkOrder, IWorkOrderSe
// productModel.setTotalMachine("");// 合计(设备秒)
// productModel.setEnterprisesId("");//_id 企业id
productModel.setUserId(zyOrders.getUserId());//_id 用户id
// productModel.setStructureDiagram(cSampleModel.getStructureDiagram());//_diagram 结构图
// productModel.setLayoutDiagram(cSampleModel.getLayoutDiagram());//_diagram 排料图
// productModel.setProductPicture(cSampleModel.getUrl());//_picture 产品图片
productModel.setStructureDiagram(cSampleModel.getStructureDiagram());//_diagram 结构图
productModel.setLayoutDiagram(cSampleModel.getLayoutDiagram());//_diagram 排料图
productModel.setProductPicture(cSampleModel.getUrl());//_picture 产品图片
productModel.setHeight(mesureModel.getHeight());// 身高
productModel.setWeight(mesureModel.getWeight());// 体重
productModel.setHem(mesureModel.getHem());// 下摆

@ -0,0 +1,115 @@
package org.jeecg.modules.workorder.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.jeecg.common.aspect.annotation.Dict;
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: 2023-01-07
* @Version: V1.0
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="work_order对象", description="工单订单完工")
public class WorkOrderVo 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;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**工单编号*/
@Excel(name = "工单编号", width = 15)
@ApiModelProperty(value = "工单编号")
private String productCode;
// /**订单*/
// @Excel(name = "订单", width = 15)
// @ApiModelProperty(value = "订单")
// private String ordersId;
/**原订单id*/
@Excel(name = "订单", width = 15)
@Dict(dictTable = "zy_orders", dicText = "orders_num", dicCode = "id")
@ApiModelProperty(value = "订单")
private String ordersId;
/**订单商品*/
@Excel(name = "订单商品", width = 15)
@ApiModelProperty(value = "订单商品")
private String orderGoodsId;
@ApiModelProperty(value = "订单商品名称")
private String goodsName;
/**商品数量*/
@Excel(name = "商品数量", width = 15)
@ApiModelProperty(value = "商品数量")
private Integer goodsNum;
/**下单时间*/
@Excel(name = "下单时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "下单时间")
private Date orderTime;
/**交货期*/
@Excel(name = "交货期", width = 15)
@ApiModelProperty(value = "交货期")
private Integer deliveryTime;
/**工单状态*/
@Excel(name = "工单状态", width = 15, dicCode = "work_order_status")
@Dict(dicCode = "work_order_status")
@ApiModelProperty(value = "工单状态")
private Integer workOrderStatus;
@ApiModelProperty(value = "工单状态")
private String workOrderStatusText;
/**企业*/
@Excel(name = "企业", width = 15)
@ApiModelProperty(value = "企业")
private String enterprisesId;
@ApiModelProperty(value = "客户姓名")
private String realname;
@ApiModelProperty(value = "企业")
private String departName;
@ApiModelProperty(value = "订单编号")
private java.lang.String ordersNum;
}

@ -2,9 +2,12 @@ package org.jeecg.modules.workorder.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.workorder.entity.WorkOrder;
import org.jeecg.modules.workorder.entity.WorkOrderVo;
/**
* @Description: 工单订单完工
@ -14,4 +17,6 @@ import org.jeecg.modules.workorder.entity.WorkOrder;
*/
public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
//自定义分页查询
IPage<WorkOrder> selectListPage(Page<WorkOrder> page,@Param("model") WorkOrderVo model);
}

@ -2,4 +2,38 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.workorder.mapper.WorkOrderMapper">
<select id="selectListPage" resultType="org.jeecg.modules.workorder.entity.WorkOrderVo">
SELECT wo.*,og.goods_name AS goodsName ,us.realname,dict.item_text AS workOrderStatusText ,dep.`depart_name` AS departName ,o.orders_num AS ordersNum
FROM work_order AS wo
LEFT JOIN zy_orders o ON o.id= wo.orders_id
LEFT JOIN order_goods og ON og.id= wo.order_goods_id
LEFT JOIN sys_user us ON us.username= o.user_id
LEFT JOIN sys_dict_item dict ON dict.dict_id='1611565939851538433'
LEFT JOIN sys_depart dep ON dep.id=wo.enterprises_id
<where>
dict.item_value=wo.work_order_status
<if test="model != null">
<!--工单编号 -->
<if test="model.productCode!=null and model.productCode!=''">
and wo.product_code =#{model.productCode}
</if >
<!--订单编号 -->
<if test="model.ordersNum!=null and model.ordersNum!=''">
and o.orders_num =#{model.ordersNum}
</if >
<!--客户名称 -->
<if test="model.realname!=null and model.realname!=''">
and us.realname LIKE CONCAT("%",#{model.realname},"%")
</if >
</if>
</where>
order by wo.create_time desc
</select>
</mapper>

@ -1,8 +1,11 @@
package org.jeecg.modules.workorder.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.workorder.entity.WorkOrder;
import org.jeecg.modules.workorder.entity.WorkOrderVo;
/**
* @Description: 工单订单完工
@ -12,4 +15,6 @@ import org.jeecg.modules.workorder.entity.WorkOrder;
*/
public interface IWorkOrderService extends IService<WorkOrder> {
//自定义分页查询
IPage<WorkOrder> selectPage(Page<WorkOrder> page, WorkOrderVo workOrder);
}

@ -1,7 +1,10 @@
package org.jeecg.modules.workorder.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.workorder.entity.WorkOrder;
import org.jeecg.modules.workorder.entity.WorkOrderVo;
import org.jeecg.modules.workorder.mapper.WorkOrderMapper;
import org.jeecg.modules.workorder.service.IWorkOrderService;
import org.springframework.stereotype.Service;
@ -17,4 +20,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements IWorkOrderService {
/**
* 自定义分页查询
* @param page
* @param workOrder
* @return
*/
@Override
public IPage<WorkOrder> selectPage(Page<WorkOrder> page, WorkOrderVo workOrder) {
return baseMapper.selectListPage(page,workOrder);
}
}

@ -58,6 +58,10 @@ public class ZyProduct implements Serializable {
@Excel(name = "产品编号", width = 15)
@ApiModelProperty(value = "产品编号")
private String productCode;
@Excel(name = "产品名称", width = 50)
@ApiModelProperty(value = "产品名称")
private String productName;
/**工单*/
@Excel(name = "工单", width = 15)
@ApiModelProperty(value = "工单")

Loading…
Cancel
Save