Merge remote-tracking branch 'origin/master'

zhc4dev
赵玉瑞 2 years ago
commit 84b53db98c
  1. 238
      ant-design-vue-jeecg/src/views/erp/fabric/modules/ZyFabricForm.vue
  2. 217
      ant-design-vue-jeecg/src/views/productplan/ZyPlanProcessDataList.vue
  3. 24
      ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue
  4. 73
      ant-design-vue-jeecg/src/views/productplan/modules/ZyProductPlanForm.vue
  5. 4
      ant-design-vue-jeecg/src/views/team/modules/GroupxModal.vue
  6. 87
      ant-design-vue-jeecg/src/views/zygoods/modules/ZyGoodsForm.vue
  7. 35
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/zygoods/controller/ZyGoodsController.java
  8. 16
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
  9. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java
  10. 19
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyProductPlan.java
  11. 27
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/ProcessDataVo.java
  12. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/IZyPlanProcessService.java
  13. 45
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/impl/ZyPlanProcessServiceImpl.java
  14. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/zystylemodel/entity/ZyStyleModel.java

@ -2,8 +2,8 @@
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-row type="flex" justify="space-around">
<a-col :span="11">
<a-form-model-item label="面料类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="typeId">
<j-popup
v-model="model.typeName"
@ -17,118 +17,236 @@
<a-input v-model="model.typeId" hidden />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="材质" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="material">
<j-search-select-tag v-model="model.material" dict="material" @change="gaibian" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="11">
<a-form-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fabricNumber">
<a-input v-model="model.fabricNumber" placeholder="请输入编号" disabled></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="model.name" placeholder="请输入名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="11">
<a-form-model-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="color">
<a-input v-model="model.color" placeholder="请输入颜色" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="花样" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pattern">
<j-search-select-tag v-model="model.pattern" dict="pattern" />
</a-form-model-item>
</a-col>
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="材质" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="material">-->
<!-- <j-search-select-tag v-model="model.material" dict="material" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="description">-->
<!-- <a-input v-model="model.description" placeholder="请输入描述" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<a-col :span="24">
<a-form-model-item label="厚度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ply">
<j-search-select-tag v-model="model.ply" dict="ply" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="11">
<a-form-model-item label="单价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="money">
<a-input-number v-model="model.money" placeholder="请输入单价" :precision="2" :min="0" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="零售价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="retailPrice">
<a-input-number v-model="model.retailPrice" placeholder="请输入零售价" style="width: 100%" />
<a-col :span="12">
<a-form-model-item label="厚度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ply">
<j-search-select-tag v-model="model.ply" dict="ply" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="单位(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
<j-dict-select-tag v-model="model.unit" type="radioButton" title="单位" dictCode="unit1" />
<a-col :span="11">
<a-form-model-item label="零售价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="retailPrice">
<a-input-number v-model="model.retailPrice" placeholder="请输入零售价" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brandId">
<j-search-select-tag v-model="model.brandId" dict="brand" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="11">
<a-form-model-item label="单位(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
<j-dict-select-tag v-model="model.unit" type="radioButton" title="单位" dictCode="unit1" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="密度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="density">
<j-search-select-tag v-model="model.density" dict="density" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="幅宽(米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clothW">
<a-col :span="11">
<a-form-model-item label="幅宽(米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clothW">
<j-search-select-tag v-model="model.clothW" dict="clothW" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="销售地区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="location">
<a-input v-model="model.location" placeholder="请输入销售地区" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
<j-dict-select-tag v-model="model.status" type="radioButton" title="状态" dictCode="fabric_status" />
</a-form-model-item>
</a-col>
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="等级" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fabricGrade">-->
<!-- <j-search-select-tag v-model="model.fabricGrade" dict="fabric_grade" />-->
<!-- <a-col :span="11">-->
<!-- <a-form-model-item label="销售地区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="location">-->
<!-- <a-input v-model="model.location" placeholder="请输入销售地区" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<a-col :span="24">
<a-col :span="11">
<a-form-model-item label="供货商" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="supplierInfo">
<j-select-depart v-model="model.supplierInfo" multi />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-col :span="12">
</a-col>
</a-row>
<a-row>
<a-col :span="48">
<a-form-model-item label="销售地区" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="location">
<!-- <a-input v-model="model.location" placeholder="请输入销售地区" ></a-input>-->
<a-textarea v-model="model.location" rows="2" placeholder="请输入销售地区"/>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="11">
<a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="imageUrl">
<j-image-upload isMultiple v-model="model.imageUrl" ></j-image-upload>
</a-form-model-item>
</a-col>
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="图片地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="imageUrl">-->
<!-- &lt;!&ndash;<j-image-upload isMultiple v-model="model.imageUrl" ></j-image-upload>&ndash;&gt;-->
<!-- <img style="width: 100%;" :src="model.imageUrl">-->
<!-- <a-input hidden="hidden" v-model="model.imageUrl"></a-input>-->
<!-- <a-button type="primary" @click="onlineImage">-->
<!-- 在线-->
<!-- </a-button>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<a-col :span="24">
<a-col :span="12">
<a-form-model-item label="二维码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qRcode">
<j-image-upload isMultiple v-model="model.qRcode" ></j-image-upload>
</a-form-model-item>
</a-col>
</a-row>
<!-- <a-row>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="面料类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="typeId">-->
<!-- <j-popup-->
<!-- v-model="model.typeName"-->
<!-- field="typeName"-->
<!-- org-fields="nums,content"-->
<!-- dest-fields="typeId,typeName"-->
<!-- code="zy_fabric_type"-->
<!-- :multi="false"-->
<!-- @input="popupCallback"-->
<!-- />-->
<!-- <a-input v-model="model.typeId" hidden />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="材质" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="material">-->
<!-- <j-search-select-tag v-model="model.material" dict="material" @change="gaibian" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fabricNumber">-->
<!-- <a-input v-model="model.fabricNumber" placeholder="请输入编号" disabled></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">-->
<!-- <a-input v-model="model.name" placeholder="请输入名称" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="color">-->
<!-- <a-input v-model="model.color" placeholder="请输入颜色" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="花样" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pattern">-->
<!-- <j-search-select-tag v-model="model.pattern" dict="pattern" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!--&lt;!&ndash; <a-col :span="24">&ndash;&gt;-->
<!--&lt;!&ndash; <a-form-model-item label="材质" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="material">&ndash;&gt;-->
<!--&lt;!&ndash; <j-search-select-tag v-model="model.material" dict="material" />&ndash;&gt;-->
<!--&lt;!&ndash; </a-form-model-item>&ndash;&gt;-->
<!--&lt;!&ndash; </a-col>&ndash;&gt;-->
<!--&lt;!&ndash; <a-col :span="24">&ndash;&gt;-->
<!--&lt;!&ndash; <a-form-model-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="description">&ndash;&gt;-->
<!--&lt;!&ndash; <a-input v-model="model.description" placeholder="请输入描述" ></a-input>&ndash;&gt;-->
<!--&lt;!&ndash; </a-form-model-item>&ndash;&gt;-->
<!--&lt;!&ndash; </a-col>&ndash;&gt;-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="厚度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ply">-->
<!-- <j-search-select-tag v-model="model.ply" dict="ply" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="单价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="money">-->
<!-- <a-input-number v-model="model.money" placeholder="请输入单价" :precision="2" :min="0" style="width: 100%" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="零售价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="retailPrice">-->
<!-- <a-input-number v-model="model.retailPrice" placeholder="请输入零售价" style="width: 100%" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="单位(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">-->
<!-- <j-dict-select-tag v-model="model.unit" type="radioButton" title="单位" dictCode="unit1" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brandId">-->
<!-- <j-search-select-tag v-model="model.brandId" dict="brand" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="密度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="density">-->
<!-- <j-search-select-tag v-model="model.density" dict="density" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="幅宽(米)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clothW">-->
<!-- <j-search-select-tag v-model="model.clothW" dict="clothW" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="销售地区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="location">-->
<!-- <a-input v-model="model.location" placeholder="请输入销售地区" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">-->
<!-- <j-dict-select-tag v-model="model.status" type="radioButton" title="状态" dictCode="fabric_status" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!--&lt;!&ndash; <a-col :span="24">&ndash;&gt;-->
<!--&lt;!&ndash; <a-form-model-item label="等级" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fabricGrade">&ndash;&gt;-->
<!--&lt;!&ndash; <j-search-select-tag v-model="model.fabricGrade" dict="fabric_grade" />&ndash;&gt;-->
<!--&lt;!&ndash; </a-form-model-item>&ndash;&gt;-->
<!--&lt;!&ndash; </a-col>&ndash;&gt;-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="供货商" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="supplierInfo">-->
<!-- <j-select-depart v-model="model.supplierInfo" multi />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="imageUrl">-->
<!-- <j-image-upload isMultiple v-model="model.imageUrl" ></j-image-upload>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!--&lt;!&ndash; <a-col :span="24">&ndash;&gt;-->
<!--&lt;!&ndash; <a-form-model-item label="图片地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="imageUrl">&ndash;&gt;-->
<!--&lt;!&ndash; &lt;!&ndash;<j-image-upload isMultiple v-model="model.imageUrl" ></j-image-upload>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <img style="width: 100%;" :src="model.imageUrl">&ndash;&gt;-->
<!--&lt;!&ndash; <a-input hidden="hidden" v-model="model.imageUrl"></a-input>&ndash;&gt;-->
<!--&lt;!&ndash; <a-button type="primary" @click="onlineImage">&ndash;&gt;-->
<!--&lt;!&ndash; 在线&ndash;&gt;-->
<!--&lt;!&ndash; </a-button>&ndash;&gt;-->
<!--&lt;!&ndash; </a-form-model-item>&ndash;&gt;-->
<!--&lt;!&ndash; </a-col>&ndash;&gt;-->
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="二维码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qRcode">-->
<!-- <j-image-upload isMultiple v-model="model.qRcode" ></j-image-upload>-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<!-- </a-row>-->
<online-camera ref="onlineCamera" v-on:changeOnlineVisible="changeOnlineVisible" />
</a-form-model>
@ -172,6 +290,14 @@
xs: { span: 24 },
sm: { span: 16 },
},
labelCol1: {
xs: { span: 24 },
sm: { span: 3 },
},
wrapperCol1: {
xs: { span: 24 },
sm: { span: 21 },
},
confirmLoading: false,
validatorRules: {
typeId: [

@ -0,0 +1,217 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('生产计划工序')">导出</a-button>
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
<!-- @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal"
@handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel">
<a-icon type="delete"/>
删除
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<!-- <span slot="action1" slot-scope="text, record">-->
<!-- <a @click="jumpPage1(record)">班组成员管理</a>-->
<!-- &lt;!&ndash; <a-divider type="vertical"/>&ndash;&gt;-->
<!-- &lt;!&ndash; <a @click="jumpPage2(record)">工位工具管理</a>&ndash;&gt;-->
<!-- </span>-->
<span slot="action" slot-scope="text, record">
<!-- <a @click="handleEdit(record)">编辑</a>-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="handleDetail(record)">详情</a>-->
<!-- <a-divider type="vertical"/>-->
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
<a-divider type="vertical"/>
<a @click="jumpPage1(record)">制定计划详情</a>
</span>
</a-table>
</div>
<zy-plan-process-modal ref="modalForm" @ok="modalFormOk"></zy-plan-process-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ZyPlanProcessModal from './modules/ZyPlanProcessModal2'
export default {
name: 'ZyPlanProcessList',
mixins: [JeecgListMixin, mixinDevice],
components: {
ZyPlanProcessModal
},
data() {
return {
description: '计划工序制定数据列表',
//
columns: [
{
title: '#',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: "center",
customRender: function (t, r, index) {
return parseInt(index) + 1;
}
},
{
title: '生产计划id',
align: "center",
dataIndex: 'planId'
},
{
title: '车间名称',
align: "center",
dataIndex: 'teamName'
},
{
title: '工单编号',
align: "center",
dataIndex: 'productCode'
},
{
title: '产品名称',
align: "center",
dataIndex: 'productCode2'
},
{
title:'工序名称',
align:"center",
dataIndex: 'processId_dictText'
},
{
title:'序号',
align:"center",
dataIndex: 'number'
},
{
title: '操作',
dataIndex: 'action',
align: "center",
fixed: "right",
width: 147,
scopedSlots: {customRender: 'action'}
}
],
url: {
list: "/org.jeecg.modules.productplan/zyPlanProcess/list",
productPlanlist: "/org.jeecg.modules.productplan/zyProductPlan/list",
delete: "/org.jeecg.modules.productplan/zyPlanProcess/delete",
deleteBatch: "/org.jeecg.modules.productplan/zyPlanProcess/deleteBatch",
exportXlsUrl: "/org.jeecg.modules.productplan/zyPlanProcess/exportXls",
importExcelUrl: "org.jeecg.modules.productplan/zyPlanProcess/importExcel",
},
dictOptions: {},
superFieldList: [],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function () {
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig() {
},
getSuperFieldList() {
let fieldList = [];
fieldList.push({type: 'string', value: 'planId', text: '生产计划id', dictCode: ''})
fieldList.push({type: 'string', value: 'stationId', text: '工位id', dictCode: ''})
fieldList.push({type: 'string', value: 'machineIds', text: '设备id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'toolsIds', text: '工具id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'processIds', text: '工序id列表', dictCode: ''})
fieldList.push({type: 'string', value: 'userIds', text: '成员id列表', dictCode: ''})
this.superFieldList = fieldList
},
jumpPage1(record) {
this.$router.push({
path: '/productplan/ZyProductPlanList',
// query: { //
// 'stationId': record.id,
// 'stationName': record.stationName,
// },
});
},
// pf(record) {
// this.$router.push({
// path: '/productplan/ZyPlanProcessAddList',
// query: { //
// }
// });
// getAction("productPlanlist", {id: record.id}).then((res) => {
// if (res.success) {
// this.$router.push({
// path: '/src/views/processassessment/assessmentCourse/ClassOpeningTaskList',
// query: { //
// }
// });
// } else {
// this.$message.error(res.message)
// }
// });
// },
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -168,12 +168,19 @@ export default {
},
{
title: '生产开始时间',
width:150,
align: "center",
dataIndex: 'workTime',
customRender: function (text) {
return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
}
// 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",
@ -196,14 +203,15 @@ export default {
align: "center",
dataIndex: 'auditBy'
},
// {
// title: '',
// align: "center",
// dataIndex: 'auditTimr',
{
title: '审核时间',
width:150,
align: "center",
dataIndex: 'auditTimr',
// customRender: function (text) {
// return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
// }
// },
},
{
title: '操作',
dataIndex: 'action',

@ -7,9 +7,9 @@
<!-- <a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productCode">-->
<!-- <a-input v-model="model.productCode" placeholder="请输入工单编号" ></a-input>-->
<!-- </a-form-model-item>-->
<a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workOrderId">
<a-form-model-item label="工单编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productCode">
<j-dict-select-tag type="list" v-model="model.productCode"
dictCode="work_order,work_id,work_code,work_order_status='0'"
dictCode="work_order,product_code,product_code,work_order_status='0'"
placeholder="请选择工单编号"/>
</a-form-model-item>
</a-col>
@ -18,20 +18,27 @@
<!-- <a-input v-model="model.workshopId" placeholder="请输入车间id" ></a-input>-->
<!-- </a-form-model-item>-->
<a-form-model-item label="车间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workshopId">
<j-select-depart placeholder="请选择车间" v-model="model.workshopId" @change="groupxValChange()"/>
<!-- <j-select-depart placeholder="请选择车间" v-model="model.workshopId" @change="groupxValChange()"/>-->
<j-dict-select-tag type="list" v-model="model.workshopId"
dictCode="sys_depart,depart_name,id,org_type='1'" @change="getGroupxValChange()"
placeholder="请选择车间"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="车间负责人" :labelCol="labelCol" :wrapperCol="wrapperCol"
prop="responsiblePerson">
<j-select-multi-user placeholder="请选择车间负责人"
v-model="model.responsiblePerson"></j-select-multi-user>
<!-- <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>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="班组" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamId">
<j-dict-select-tag type="list" v-model="model.teamId"
placeholder="请先选择所属车间班组" :dict-code="groupxVal"
placeholder="请选择车间班组" :dict-code="groupxVal"
@change="getEnterprisesManagerValChange()"
:disabled="model.workshopId==null"/>
</a-form-model-item>
</a-col>
@ -39,13 +46,14 @@
<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"
:disabled="model.workshopId==null"/>
placeholder="请选择组" :dict-code="groupxVal2"
: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%"/>
<!-- <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-form-model-item>
</a-col>
<a-col :span="24">
@ -54,25 +62,27 @@
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="statu">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
<j-dict-select-tag type="list" v-model="model.status" dictCode="productplanStatus"
placeholder="请选择状态"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否加急" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="speedUp">
<j-dict-select-tag type="radio" v-model="model.speedUp" dictCode="sfjj" placeholder="请选择是否加急"/>
<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>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditBy">
<!-- <a-input v-model="model.auditBy" placeholder="请输入审核人" ></a-input>-->
<j-select-multi-user placeholder="请选择审核人" v-model="model.auditBy"></j-select-multi-user>
<a-form-model-item label="审核时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditTimr">
<!-- <j-date placeholder="请选择审核时间" v-model="model.auditTimr" style="width: 100%"/>-->
<a-date-picker placeholder="请选择审核时间" showTime valueFormat='YYYY-MM-DD HH:mm:ss'
v-model="model.auditTimr" style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="审核时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditTimr">
<j-date placeholder="请选择审核时间" v-model="model.auditTimr" style="width: 100%"/>
<a-form-model-item label="是否加急" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="speedUp">
<j-dict-select-tag type="radio" v-model="model.speedUp" dictCode="sfjj" placeholder="请选择是否加急"/>
</a-form-model-item>
</a-col>
</a-row>
@ -99,8 +109,8 @@ export default {
},
data() {
return {
groupxVal: "",
groupxVal2: "",
groupxVal: "groupx,group_name,id",
groupxVal2: "groupx,enterprises_manager,id",
model: {},
labelCol: {
xs: {span: 24},
@ -112,13 +122,21 @@ export default {
},
confirmLoading: false,
validatorRules: {
workOrderId: [
{required: true,},
productCode: [
{required: true, message: "工单不能为空"},
],
workshopId: [
{required: true,},
], teamId: [
{required: true,},
{required: true, message: "工单不能为空"},
],
teamId: [
{required: true, message: "班组不能为空"},
],
// status: [
// {required: true,message: ""},
// ],
offTime: [
{required: true, message: "生产时长不能不空"},
{pattern: /^[0-9]{0,100}$/, message: '生产时间不能为空且长度为正整数'}
],
},
url: {
@ -138,11 +156,14 @@ export default {
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
groupxValChange() {
getGroupxValChange() {
// alert("" + this.model.workshopId);
// this.basicInfoCode = "py_basic_info,chart_head,id, major_id='" + this.queryParam.majorId + "'";
this.groupxVal = "groupx,group_name,id,depart_id='" + this.model.workshopId + "'";
this.groupxVal2 = "groupx,enterprises_manager,enterprises_manager,depart_id='" + this.model.workshopId + "'";
// this.groupxVal2 = "groupx,enterprises_manager,enterprises_manager,depart_id='" + this.model.workshopId + "'";
},
getEnterprisesManagerValChange() {
this.groupxVal2 = "groupx,enterprises_manager,enterprises_manager,id='" + this.model.teamId + "'";
},
add() {
this.edit(this.modelDefault);

@ -31,9 +31,9 @@
<!-- </a-form-model-item>-->
<a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol" prop="enterprisesManager" label="班组成员">
<a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol" prop="enterprisesManager" label="负责人">
<!-- <j-select-user-by-dep v-model="model.userId" :multi="false"></j-select-user-by-dep>-->
<j-select-multi-user placeholder="请选择成员" v-model="model.enterprisesManager" @change="getMobile()" :multiple="false" ></j-select-multi-user>
<j-select-multi-user placeholder="请选择负责人" v-model="model.enterprisesManager" @change="getMobile()" :multiple="false" ></j-select-multi-user>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mobile" label="手机号">

@ -3,9 +3,29 @@
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="企业" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enterprisesId">
<j-select-depart v-model="model.enterprisesId" @change="getlx()"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="服装类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clothsTypeId">
<j-dict-select-tag type="list" v-model="model.clothsTypeId" :dictCode="lx" placeholder="请选择类型" @change="getks()"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="服装款式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="styleId">
<j-dict-select-tag type="list" v-model="model.styleId" :dictCode="ks" placeholder="请选择款式" @change="getxh()"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="服装型号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="modelId">
<j-dict-select-tag type="list" v-model="model.modelId" :dictCode="xh" placeholder="请选择型号" @change="getspbh()"/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商品编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodsCode">
<a-input v-model="model.goodsCode" placeholder="请输入商品编号" ></a-input>
<a-input v-model="model.goodsCode" placeholder="请输入商品编号" disabled></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
@ -38,21 +58,6 @@
<j-upload v-model="model.goodsVideo" ></j-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clothsTypeId">
<j-dict-select-tag type="list" v-model="model.clothsTypeId" dictCode="zy_cloths_type ,type_name,id" placeholder="请选择类型id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="型号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="modelId">
<j-dict-select-tag type="list" v-model="model.modelId" dictCode="zy_style_model,model_number,id" placeholder="请选择型号id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="款式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="styleId">
<j-dict-select-tag type="list" v-model="model.styleId" dictCode="zy_cloths_style,style_names,id" placeholder="请选择款式id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
<a-input v-model="model.unit" placeholder="请输入单位" ></a-input>
@ -64,17 +69,17 @@
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="单价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unitPrice">
<a-form-model-item label="单价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unitPrice">
<a-input-number v-model="model.unitPrice" placeholder="请输入单价" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="折扣" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="discount">
<a-form-model-item label="折扣(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="discount">
<a-input-number v-model="model.discount" placeholder="请输入折扣" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="促销价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="promotionPrice">
<a-form-model-item label="促销价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="promotionPrice">
<a-input-number v-model="model.promotionPrice" placeholder="请输入促销价" style="width: 100%" />
</a-form-model-item>
</a-col>
@ -93,11 +98,7 @@
<j-dict-select-tag type="radio" v-model="model.status" dictCode="good_status" placeholder="请选择状态" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="企业" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enterprisesId">
<j-select-depart v-model="model.enterprisesId" multi />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
@ -123,6 +124,9 @@
},
data () {
return {
lx:'zy_cloths_type ,type_name,id',
ks:'zy_cloths_style,style_names,id',
xh:'zy_style_model,model_number,id',
model:{
customized:0,
recommend:0,
@ -138,15 +142,24 @@
},
confirmLoading: false,
validatorRules: {
enterprisesId:[{
required: true, message: '请选择企业!'
}],
modelId:[{
required: true, message: '请选择型号!'
}],
goodsCode: [
{ required: true, message: '请输入商品编号!'},
],
styleId: [
{ required: true, message: '请选择款式!'},
],
clothsTypeId:[{
required: true, message: '请选择类型!'
}],
number: [
{ required: false},
{ pattern: /^-?\d+$/, message: '请输入整数!'},
{ pattern: /^[+]{0,1}(\d+)$/, message: '包装个数必须大于等于0!'},
],
unitPrice: [
{ required: false},
@ -164,7 +177,8 @@
url: {
add: "/zygoods/zyGoods/add",
edit: "/zygoods/zyGoods/edit",
queryById: "/zygoods/zyGoods/queryById"
queryById: "/zygoods/zyGoods/queryById",
zy:"/zygoods/zyGoods/getspbh"
}
}
},
@ -178,6 +192,27 @@
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
getlx(){
this.lx ="zy_cloths_type ,type_name,id,enterprise_id='" + this.model.enterprisesId + "'";
},
getks(){
this.ks ="zy_cloths_style,style_names,id,type_id='" + this.model.clothsTypeId + "'";
},
getxh(){
this.xh ="zy_style_model,model_number,id,style_id='" + this.model.styleId + "'";
},
getspbh(){
getAction(this.url.zy, {lxid:this.model.clothsTypeId,xhid:this.model.modelId}).then((res) => {
if (res.success) {
// console.log(res.result.nums)
// this.$forceUpdate();
//
this.$set(this.model,'goodsCode',res.result);
} else {
}
});
},
add () {
this.edit(this.modelDefault);
},

@ -12,7 +12,9 @@ import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.base.entity.ZyClothsType;
import org.jeecg.modules.demo.base.service.IZyClothsModularService;
import org.jeecg.modules.demo.base.service.IZyClothsTypeService;
import org.jeecg.modules.demo.goodsmodule.entity.GoodsModule;
import org.jeecg.modules.demo.goodsmodule.service.IGoodsModuleService;
import org.jeecg.modules.demo.zygoods.entity.ZyGoods;
@ -65,6 +67,10 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
private IZyClothsModularService zyClothsModularService;
@Autowired
private IZyClothsStyleService zyClothsStyleService;
@Autowired
private IZyStyleModelService zyStyleModelService;
@Autowired
private IZyClothsTypeService zyClothsTypeService;
/**
* 分页列表查询
@ -204,6 +210,35 @@ public class ZyGoodsController extends JeecgController<ZyGoods, IZyGoodsService>
return Result.OK(zyGoods);
}
/**
* 动态获取商品编码
*
* @param
* @return
*/
@AutoLog(value = "商品表-通过id查询")
@ApiOperation(value="商品表-通过id查询", notes="商品表-通过id查询")
@GetMapping(value = "/getspbh")
public Result<?> getspbh(@RequestParam(name="lxid",required=true) String lxid,@RequestParam(name="xhid",required=true) String xhid,HttpServletRequest req) {
String spbh = "";
ZyClothsType zyClothsType = zyClothsTypeService.getById(lxid);
//服装类型编号
String lxbh = zyClothsType.getNums();
//型号编码
ZyStyleModel zyStyleModel = zyStyleModelService.getById(xhid);
String xhbm =zyStyleModel.getModelNumber();
//顺序号
String sxh = "";
ZyGoods zyGoods = new ZyGoods();
QueryWrapper<ZyGoods> queryWrapper = QueryGenerator.initQueryWrapper(zyGoods, req.getParameterMap());
queryWrapper.eq("cloths_type_id",lxid);
queryWrapper.eq("model_id",xhid);
List<ZyGoods> list = zyGoodsService.list(queryWrapper);
sxh = list.size()+1+"";
spbh = lxbh + xhbm + sxh;
return Result.OK(spbh);
}
/**
* 导出excel
*

@ -12,6 +12,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.vo.ProcessDataVo;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -20,6 +21,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 生产计划工序
@ -57,6 +60,19 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
return Result.OK(pageList);
}
@ApiOperation(value = "生产计划工序-查询产品工序&计划", notes = "生产计划工序-查询产品工序&计划")
@GetMapping(value = "/getProcessDatalist")
public Result<?> getProcessDatalist(ZyPlanProcess zyPlanProcess,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ZyPlanProcess> queryWrapper = QueryGenerator.initQueryWrapper(zyPlanProcess, req.getParameterMap());
Page<ZyPlanProcess> page = new Page<ZyPlanProcess>(pageNo, pageSize);
// IPage<ZyPlanProcess> pageList = zyPlanProcessService.getProcessDatalist(page, queryWrapper);
List<ProcessDataVo> pageList = zyPlanProcessService.getProcessDatalist(zyPlanProcess);
return Result.OK(pageList);
}
/**
* 添加
*

@ -68,6 +68,7 @@ public class ZyProductPlanController extends JeecgController<ZyProductPlan, IZyP
@PostMapping(value = "/add")
public Result<?> add(@RequestBody ZyProductPlan zyProductPlan) {
zyProductPlanService.save(zyProductPlan);
//TODO 更新work_order表work_order_status为“1” (不能为其新增生产计划)
return Result.OK("添加成功!");
}
@ -96,6 +97,7 @@ public class ZyProductPlanController extends JeecgController<ZyProductPlan, IZyP
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
zyProductPlanService.removeById(id);
//TODO 更新work_order表work_order_status为“0” (可以为其新增生产计划)
return Result.OK("删除成功!");
}

@ -1,8 +1,6 @@
package org.jeecg.modules.productplan.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -84,7 +82,7 @@ public class ZyProductPlan implements Serializable {
*/
@Excel(name = "班组", width = 15)
@ApiModelProperty(value = "班组")
@Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
@Dict(dictTable = "groupx", dicText = "group_name", dicCode = "id")
private String teamId;
/**
* 组长
@ -95,9 +93,9 @@ public class ZyProductPlan implements Serializable {
/**
* 生产开始时间
*/
@Excel(name = "生产开始时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生产开始时间", width = 15, 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 workTime;
/**
@ -129,9 +127,10 @@ public class ZyProductPlan implements Serializable {
/**
* 审核时间
*/
@Excel(name = "审核时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核时间", width = 15, 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 = "审核时间")
// @TableField(fill = FieldFill.INSERT)
private Date auditTimr;
}

@ -0,0 +1,27 @@
package org.jeecg.modules.productplan.entity.vo;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.team.entity.Station;
import java.util.List;
@Data
public class ProcessDataVo {
//工单id
private String workOrderId;
//产品id
private String productId;
//车间
private String departId;
//工位
private List<Station> stationList;
// @Dict("")
//产品工序id
private String productProcessId;
}

@ -3,6 +3,9 @@ package org.jeecg.modules.productplan.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.vo.ProcessDataVo;
import java.util.List;
/**
* @Description: 生产计划工序
@ -12,4 +15,5 @@ import org.jeecg.modules.productplan.entity.ZyPlanProcess;
*/
public interface IZyPlanProcessService extends IService<ZyPlanProcess> {
List<ProcessDataVo> getProcessDatalist(ZyPlanProcess zyPlanProcess);
}

@ -1,12 +1,26 @@
package org.jeecg.modules.productplan.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.swagger.annotations.Authorization;
import org.jeecg.modules.product.zyproductprocess.entity.ZyProductProcess;
import org.jeecg.modules.product.zyproductprocess.service.IZyProductProcessService;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.ZyProductPlan;
import org.jeecg.modules.productplan.entity.vo.ProcessDataVo;
import org.jeecg.modules.productplan.mapper.ZyPlanProcessMapper;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.jeecg.modules.productplan.service.IZyProductPlanService;
import org.jeecg.modules.team.entity.Station;
import org.jeecg.modules.team.service.IStationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
* @Description: 生产计划工序
* @Author: jeecg-boot
@ -16,4 +30,35 @@ import org.springframework.stereotype.Service;
@Service
public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, ZyPlanProcess> implements IZyPlanProcessService {
@Autowired
private IZyProductPlanService iZyProductPlanService;
@Autowired
private IZyProductProcessService iZyProductProcessService;
@Autowired
private IStationService iStationService;
public List<ProcessDataVo> getProcessDatalist(ZyPlanProcess zyPlanProcess) {
//生产计划id
String planId = zyPlanProcess.getPlanId();
ZyProductPlan zyProductPlan = iZyProductPlanService.getById(planId);
//工单id
String productCode = zyProductPlan.getProductCode();
String departId = zyProductPlan.getWorkshopId();
// TODO zy_product产品表,根据工单id获取产品id,
//根据产品id获取产品工序列表
List<ZyProductProcess> productProcessesList = iZyProductProcessService.list(new LambdaQueryWrapper<ZyProductProcess>().eq(ZyProductProcess::getProductId, "产品id"));
Optional.ofNullable(productProcessesList).orElse(new ArrayList<>()).forEach(e -> {
ProcessDataVo vo = new ProcessDataVo();
vo.setProductProcessId(e.getProcessId());
vo.setProductId(e.getProductId());
vo.setWorkOrderId(productCode);
vo.setDepartId(departId);
vo.setStationList(iStationService.list(new LambdaQueryWrapper<Station>().eq(Station::getDepartId, departId)));
});
return null;
}
}

@ -47,7 +47,7 @@ public class ZyStyleModel implements Serializable {
/**型号编码*/
@Excel(name = "型号编码", width = 15)
@ApiModelProperty(value = "型号编码")
private java.lang.Integer modelNumber;
private java.lang.String modelNumber;
/**码数*/
@Excel(name = "码数", width = 15)
@ApiModelProperty(value = "码数")

Loading…
Cancel
Save