Преглед изворни кода

Merge branch 'master' of http://git.dongkesoft.com:9001/DK-MES-3.0/mes-web

hongxudong пре 3 година
родитељ
комит
a29d039677

+ 4 - 0
src/api/pages/report/detail-report.js

@@ -23,6 +23,10 @@ export default {
     getDeliveryBlankReportByPage:'get_delivery_blank_report_by_page',
     // 工序产量明细表
     getProcessOutputReportByPage:'get_process_output_report_by_page',
+    // 产品跟踪明细表
+    getProductFollowReportByPage:'get_product_follow_report_by_page',
+    // 产品跟踪明细
+    getProductFollowItemReportByPage:'get_product_follow_item_report_by_page',
   }
 }
 

+ 3 - 1
src/components/business/process/node-modal/node-modal.vue

@@ -579,11 +579,13 @@ export default {
       }
       // 回收时,结束节点,回收初始方式只能是后续流程
       if (this.nodeData.flowKind === this.$config.flowKind.end) {
+        this.nodeControl.routerTable.visible=false
         this.recycledKindList = this.recycledKindListSocial.filter(it => it.kindCode === this.$config.recycledKind.after)
         this.$nextTick(() => {
           this.nodeData.recycledKind = this.$config.recycledKind.after
         })
       } else {
+        this.nodeControl.routerTable.visible=true
         this.recycledKindList = this.recycledKindListSocial.copy()
       }
       this.$refs['formInline'].clearValidate()
@@ -853,7 +855,7 @@ export default {
         })
       }
       // 结束节点不能作为起点 特殊处理:(后续流程+回收)允许有出线
-      if (this.nodeData?.flowKind == this.$config.flowKind.end && cell?.nodeKind === this.$config.nodeKind.recover && cell.recycledKind != this.$config.recycledKind.after) {
+      if (this.nodeData?.flowKind == this.$config.flowKind.end ) {
         this.graph.getOutgoingEdges(cell)?.forEach(it => {
           this.graph.removeEdge(it.id)
         })

+ 8 - 0
src/config/index.js

@@ -519,6 +519,14 @@ export default {
     prodCarryoverItem: 'prodCarryoverItem',
   },
   /**
+   * @desc   : 产品跟踪明细
+   * @author : 姜宁
+   * @date   : 2023/4/14 14:34
+   */
+  productFollowItemTab: {
+    productFollowItem: 'prodCarryoverItem',
+  },
+  /**
    * @desc   : 生产工号
    * @author : 姜宁
    * @date   : 2023/2/7 15:37

+ 2 - 0
src/locale/lang/zh-CN.js

@@ -254,6 +254,7 @@ export const formTitle = {
   'product_pic': '产品图片',
   'product_draw': '画布',
   'pic_list': '图片列表',
+  'product_follow_item':'产品跟踪明细',
 }
 
 /**
@@ -1462,6 +1463,7 @@ export const appColumns = {
   appOpnTime: '操作日期',
   appCurrentNode: '当前工序',
   appLableInput: '请输入{param}',
+  appPrint: '打印',
 }
 /**
  * @desc   : app按钮

+ 141 - 74
src/view-app/app/prod-management/barcode-printing/index.vue

@@ -1,127 +1,195 @@
 <template>
-  <!--条码打印-->
+  <!--条码打印  于继渤-->
 
   <div class="main-app-form">
     <!-- 顶部导航栏 -->
-    <dk-app-nav-bar :title="$t('appBarcodePrintingTitle')"
-                    @click-left="onClickLeft" ></dk-app-nav-bar>
+    <dk-app-nav-bar :title="title" @click-left="onClickLeft"></dk-app-nav-bar>
+
+    <!-- 模板分类 -->
+    <dk-app-field :label="$t('appPrintTemplate')" v-model="formData.printLayoutName" :readonly="true"
+      @click="openDropdown('labelPrintLayout')" placeholderType="choose" is-link arrow-direction="down" />
+    <!--    打印机-->
+    <dk-app-field v-model="formData.printerName" :label="$t('appPrinter')" :readonly="true"
+      @click="openDropdown('labelPrinter')" placeholderType="choose" is-link arrow-direction="down" />
 
     <!--    产品条码-->
-    <dk-app-field
-      :label="$t('appProductBarcode')"
-      v-model="formData.productBarcode"
-      placeholderType="scan"></dk-app-field>
+    <dk-app-field v-model="formData.mouldKindName" :label="$t('appProductBarcode')"
+      @changeBarCode="queryBarCode"></dk-app-field>
+
+    <!-- 打印 -->
+    <div class="app_save_bottom-class">
+      <dk-app-button :soundEffectFlag="false" :disabled="loading" @click="save">{{ $t('appPrint') }}
+      </dk-app-button>
+    </div>
+
+
+
+
+
 
     <!--    工位-->
-    <dk-app-field
-      :label="$t('appStation')"
-      :readonly="true"
-      v-model="formData.productBarcode"
-      placeholderType="choose" is-link arrow-direction="down"></dk-app-field>
-
-    <!--    服务器打印机-->
-    <dk-app-field
-      :label="$t('appServerPrinter')"
-      :readonly="true"
-      v-model="formData.productBarcode"
-      placeholderType="choose" is-link arrow-direction="down"></dk-app-field>
-    <!--    外箱码打印机1-->
-    <dk-app-field
-      :label="$t('appOuterBoxCodePrinter1')"
-      :readonly="true"
-      v-model="formData.productBarcode"
-      placeholderType="choose" is-link arrow-direction="down"></dk-app-field>
-    <!--    外箱码打印机2-->
-    <dk-app-field
-      :label="$t('appOuterBoxCodePrinter2')"
-      :readonly="true"
-      v-model="formData.productBarcode"
-      placeholderType="choose" is-link arrow-direction="down"></dk-app-field>
+    <dk-app-single-dropdown typeName="workStationAll" :show="workStationAllFlag"
+      @mutiClose="singleClose('workStationAll')" :ids="ids" apiType="web"
+      @mutiCommit="singleCommit($event, 'workStationAll')"></dk-app-single-dropdown>
+
+
+    <!--    打印机-->
+    <dk-app-single-dropdown typeName="labelPrinter" :show="labelPrinterFlag" @mutiClose="singleClose('labelPrinter')"
+      :ids="[formData.printerId]" apiType="web"
+      @mutiCommit="singleCommit($event, 'labelPrinter')"></dk-app-single-dropdown>
+
+
+    <!--    打印模板-->
+    <dk-app-single-dropdown typeName="labelPrintLayout" :show="labelPrintLayoutFlag"
+      @mutiClose="singleClose('labelPrintLayout')" :ids="[formData.printLayoutId]" apiType="web"
+      @mutiCommit="singleCommit($event, 'labelPrintLayout')"></dk-app-single-dropdown>
+
 
     <!-- 加载页面   -->
     <dk-app-loading :loading="loading"></dk-app-loading>
 
   </div>
-
 </template>
 
 <script>
+
+import { appFormMixin } from '@/mixins/appform.js'
 export default {
   name: "app-barcode-reprinting",
+  mixins: [appFormMixin],
   data() {
     let self = this
     return {
-      moldingMoldManagementActiveTitle:'',
-
-
-      //标题
+      title: '',
+      loading: false,
+      workStationAllFlag: false,
+      labelPrinterFlag: false, //打印机
+      labelPrintLayoutFlag: false, //打印模板
+      ids: [],
       formData: {
-        productBarcode: '',//产品条码
-        flgValid: '',//有效标识
-        ftyId: 1,//工厂ID
+        printerId: null, //打印机
+        printerName: '',
+        printLayoutId: null, //打印机模板
+        printLayoutName: '',
       },
     }
   },
   methods: {
 
 
-    // region 基础数据源
+    // region 控件 回调
+    /**
+        * @desc   : 侧拉打开事件
+        * @author : 于继渤
+        * @date   : 2023/2/13 13:25
+        */
+    openDropdown(e) {
+      //列表下拉
+      if (e === 'labelPrinter') { //打印机
+        this.labelPrinterFlag = true
+      }
+      if (e === 'labelPrintLayout') { //打印模板
+        this.labelPrintLayoutFlag = true
+      }
+    },
+
+
+    /**
+     * @desc   : 单选侧拉关闭
+     * @author : 于继渤
+     * @date   : 2023/2/7 17:26
+     */
+    singleClose(e) {
+      if (e === 'labelPrinter') {
+        this.labelPrinterFlag = false
+      }
+      if (e === 'labelPrintType') {
+        this.labelPrintTypeFlag = false
+      }
+      if (e === 'labelPrintLayout') {
+        this.labelPrintLayoutFlag = false
+      }
+      if (e === 'workStationAll') {
+        this.workStationAllFlag = false
+      }
+      this.ids = []
+    },
 
+    /**
+ * @desc   : 单选侧拉确定
+ * @author : 于继渤
+ * @date   : 2023/2/7 17:26
+ */
+    singleCommit(e, typeName) {
+      if (typeName === 'labelPrinter') {  //打印机
+        this.$set(this.formData, 'printerId', e.ids ? Number(e.ids) : null)
+        this.$set(this.formData, 'printerName', e.names)
+      }
 
+      if (typeName === 'labelPrintLayout') {  //打印模板
+        this.$set(this.formData, 'printLayoutId', e.ids ? Number(e.ids) : null)
+        this.$set(this.formData, 'printLayoutName', e.names)
+      }
 
-    // endregion
 
-    // region 控件 回调
+    },
     /**
-     * @desc   : 根据输入的usercode 查询 userid
-     * @author : 王英杰
-     * @date   : 2023/2/10 9:16
+     * @desc   : 重置
+     * @author : 于继渤
+     * @date   : 2023/3/13 13:39
      */
+    onClickRightIcon(item) {
+      if (item.key === 'labelPrinter') {
+        this.formData.printerId = null
+        this.formData.printerName = ''
+        this.formData.printerId_Name = ''
+      }
 
-    queryUser() {
-      let params = {
-        ftyId: this.$store.state.user.ftyId,
-        userCode: this.formData.makeUserName,
+      if (item.key === 'labelPrintLayout') {
+        this.formData.printLayoutId = null
+        this.formData.printLayoutName = ''
       }
-      this.excute(this.$service.appCommonService, this.$service.appCommonService.selectUser, params).then(res => {
-        if (res.code === this.$config.SUCCESS_CODE) {
-          if (res.data) {
-            this.formData.makeUser = res.data.userId
-          } else { //没查找
-            this.appToastFail((this.$t('appProductionJobNumbeErro')));
-            this.formData.makeUserName = ""
-            this.formData.makeUser = ""
-          }
-        }
-      })
+
     },
+
+
     //点击标题左侧返回事件
     onClickLeft() {
       this.$router.go(-1)
     },
 
+    /**
+     * @desc   : 查询编码
+     * @author : 于继渤
+     * @date   : 2023/2/10 11:46
+     */
+    queryBarCode() {
 
+    },
 
     // endregion
 
     // region 保存
     /**
      * @desc   : 给参数赋值
-     * @author : 王英杰
+     * @author : 于继渤
      * @date   : 2023/2/10 11:46
      */
     setParams() {
-      this.params = {...this.formData}
+      this.params = { ...this.formData }
     },
     /**
      * @desc   : 检验
-     * @author : 王英杰
+     * @author : 于继渤
      * @date   : 2023/2/10 11:46
      */
     validData(flag) {
-      // 生产工号不能为空
-      if (!this.formData.makeUser) {
-        this.appToastSuccess((this.$t('appProductionJobNumbeWrong')));
+      if (!this.formData.printerId) { //打印机
+        this.appToastFail(this.$t('selectWords', { 'search-name': this.$t('appPrinter') }))
+        return false;
+      }
+      if (!this.formData.printLayoutId) { //打印模板
+        this.appToastFail(this.$t('selectWords', { 'search-name': this.$t('appPrintTemplate') }))
         return false;
       }
 
@@ -129,23 +197,22 @@ export default {
     },
     /**
      * @desc   : 保存方法
-     * @author : 王英杰
+     * @author : 于继渤
      * @date   : 2023/2/10 11:46
      */
     saveData() {
-      return this.excute(this.$service.appMouldService, this.$service.appMouldService.insert, this.params);
+      //  return this.excute(this.$service.appMouldService, this.$service.appMouldService.insert, this.params);
     },
     // endregion
 
   },
-  mounted() {
-    // 设置滚动的位置和高度
-    this.setAppTableHeight(false, null)
+  created() {
+    //设置标题
+    this.title = '' + this.$t('appStationPrinterSettingsTitle')
   },
 
+
 }
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

+ 1 - 1
src/view/process/process-flow/config/ProcessConfig.js

@@ -146,7 +146,7 @@ export default class Process {
             return false
           }
           // 结束节点不能作为连线起点 特殊处理:(后续流程+回收)允许有出线
-          if(source?.flowKind==config.flowKind.end&&source?.nodeKind===config.nodeKind.recover&&source.recycledKind!=config.recycledKind.after) {
+          if(source?.flowKind==config.flowKind.end) {
             return false
           }
           // 回收节点不能作为结束

+ 37 - 16
src/view/report/product-follow-report/index.vue

@@ -20,22 +20,17 @@
     <!--  表格部分  -->
     <DkSplit mode="vertical" v-model="split" :height="tableHeight">
       <DkTable slot="top" :id="'table-'+$options.name" ref="table-select" :data="tableData"
-               :height="this.tableHeight * split - 45" primaryKey="crovId" @pageChange="pageSizeChange"
-               :pageFlag="true"
+               :height="this.tableHeight * split - 35" primaryKey="pdtUniqueId" @pageChange="pageSizeChange"
+               :pageFlag="false"
                :choose-flag="false"
-               :page-total="pageInfo.total"
-               :current-page="pageInfo.currentPage"
                @current-change="currentChangeEvent($event)"
                name="table">
         <DkTableColumn field="pdtUniqueCode" :title="$t('pdtBarcode')" ></DkTableColumn>
-        <!--  水效标签  -->
         <DkTableColumn field="modelCode" :title="$t('productCode')"></DkTableColumn>
         <DkTableColumn field="modelName" :title="$t('productName')"></DkTableColumn>
         <DkTableColumn field="categoryName" :title="$t('productCategoryName')"></DkTableColumn>
         <DkTableColumn field="logoName" :title="$t('pdtLogoName')"></DkTableColumn>
         <DkTableColumn field="colourName" :title="$t('pdtColourName')"></DkTableColumn>
-        <!--  包装码  -->
-        <DkTableColumn field="packagingBarcode"></DkTableColumn>
         <DkTableColumn field="erpModelCode"></DkTableColumn>
         <DkTableColumn field="pdtSpecs"></DkTableColumn>
         <DkTableColumn field="moldlineCode"></DkTableColumn>
@@ -50,9 +45,9 @@
       </DkTable>
 
       <div slot="bottom" >
-        <DkTabs v-model="prodCarryoverItemTab" :options="detailOptions"></DkTabs>
+        <DkTabs v-model="productFollowItemTab" :options="detailOptions"></DkTabs>
         <!--结转明细信息-->
-        <DkTable v-if="prodCarryoverItemTab === this.$config.prodCarryoverItemTab.prodCarryoverItem"
+        <DkTable v-if="productFollowItemTab === this.$config.productFollowItemTab.productFollowItem"
                  :height="this.tableHeight * (1-split) - 25"
                  primaryKey="itemId"
                  :id="'table-'+$options.name"
@@ -66,7 +61,7 @@
                  @pageChange="detailPageSizeChange">
           <DkTableColumn field="flowName"></DkTableColumn>
           <DkTableColumn field="nodeName" :title="$t('processName')"></DkTableColumn>
-          <DkTableColumn field="makeUserName"></DkTableColumn>
+          <DkTableColumn field="prodUserCode"></DkTableColumn>
           <DkTableColumn field="opnTime" :title="$t('operationTime')" data-type="dateTime"></DkTableColumn>
           <DkTableColumn field="opCreateUserCode"></DkTableColumn>
           <DkTableColumn field="opnUserName"></DkTableColumn>
@@ -96,6 +91,7 @@ export default {
             required:true
           },
         ],
+      split: 0.2,// 分区的默认
       // 表单
       formData: {},
       detailPageInfo: {
@@ -104,8 +100,8 @@ export default {
         currentPage: 1
       },
       nodeItem:[],
-      prodCarryoverItemTab: this.$config.prodCarryoverItemTab.prodCarryoverItem,
-      detailOptions: [{label: self.$t('mould-carryover-item'), name: 'prodCarryoverItem'}, //结转明细
+      productFollowItemTab: this.$config.productFollowItemTab.productFollowItem,
+      detailOptions: [{label: self.$t('product_follow_item'), name: 'productFollowItem'}, //结转明细
       ],
     }
   },
@@ -118,7 +114,7 @@ export default {
      */
     getData(params) {
       // 查询数据
-      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getInProductReportByPage, params);
+      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getProductFollowReportByPage, params);
     },
     /**
      * @desc   : 行切换事件
@@ -127,7 +123,16 @@ export default {
      */
     currentChangeEvent({row}) {
       if (row != null) {
-
+        // 获取生产数据明细
+        this.getProductFollowItem(row.pdtUniqueId, this.detailPageInfo).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.nodeItem = res.data.list;
+            if (this.detailPageInfo.currentPage == 1) {
+              this.detailPageInfo.total = res.data.total
+              this.detailPageInfo.currentPage = 1;
+            }
+          }
+        });
       }
     },
     /**
@@ -137,9 +142,9 @@ export default {
      */
     detailPageSizeChange(detailPageInfo){
       // 查询数据
-      this.getProdCarryoverItem(this.$refs['table-select'].batchKeys[0],detailPageInfo).then(res => {
+      this.getProductFollowItem(this.$refs['table-select'].batchKeys[0],detailPageInfo).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
-          this.prodCarryoverItem = res.data.list;
+          this.nodeItem = res.data.list;
           if (this.detailPageInfo.currentPage == 1) {
             this.detailPageInfo.total = res.data.total
             this.detailPageInfo.currentPage = 1;
@@ -147,6 +152,22 @@ export default {
         }
       });
     },
+    /**
+     * @desc   : 获取生产数据明细
+     * @author : 姜宁
+     * @date   : 2023/4/14 14:16
+     */
+    getProductFollowItem(pdtUniqueId,detailPageInfo) {
+      this.detailPageInfo.currentPage = detailPageInfo.currentPage;
+      this.detailPageInfo.pageSize = detailPageInfo.pageSize;
+      let params = {
+        ftyId: this.$store.state.user.ftyId,
+        pdtUniqueId: pdtUniqueId,
+        currentPage : this.detailPageInfo.currentPage,
+        pageSize : this.detailPageInfo.pageSize
+      }
+      return this.excute(this.$service.detailReportService, this.$service.detailReportService.getProductFollowItemReportByPage, params)
+    },
     // endregion
   },