计算机系统应用教程网站

网站首页 > 技术文章 正文

《工厂订单出入库信息管理系统》模块6——异常箱体维修

btikc 2024-09-18 08:33:36 技术文章 21 ℃ 0 评论

一、前言


工厂订单及出入库业务的趋势是客户要求越来越高,客户需要快捷、方便、简单、一站式的出入库手续。因此,货物出入库管理信息系统要简化出入库手续,减轻人员作业量,提高工作效率,助力企业数字信息化转型


之前整理过该系统的完整解决方案,有兴趣的参考文章《工厂订单出入库信息管理系统》完整解决方案(含演示账号)


二、整体架构设计


开发语言:


  • Golang:Go 极其地快。其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍。
  • Vue: 轻量级框架, 大小只有几十kb, 国人开发,中文文档,不存在语言障碍,易于理解和学习。运行速度更快,相比较与react而言,同样都是操作虚拟dom,就性能而言,vue存在很大的优势。


部署方式:


  • 服务器系统:基于免安装可执行程序:支持Windows、Linux,Centos,Ubuntu操作系统
  • 数据库类型:目前已支持PostgreSQL、MySQL、Oracle、Microsoft SQL Server、SQLite等,还可以定制其它类型数据库
  • 热数据缓存服务:基于Key-Value 的Redis 数据库,关键热活数据存储在Redis服务中,提高响应速率。
  • 主备双活服务器:确保稳定性,如果主服务器故障,自动切换到备服务器。热数据
  • 数据库备份:定时增量备份,定期全量备份。


三、编码实现 (基于篇幅及可读性考虑,此处展示部分关键代码)


1、模块截图


?



2、Go 关键代码


package models

import "github.com/astaxie/beego/orm"

type Exceptionbox struct {
	Id         int    `orm:"column(Id);pk" description:"无实际用处,就是为了做个主键"`
	BoxNum     int    `orm:"column(BoxNum)" description:"箱号:不是唯一的,每个订单都是从1开始计算"`
	CreateTime int64  `orm:"column(CreateTime)" description:"生成时间"`
	SnEnd      string `orm:"column(SnEnd);size(255)" description:"sn号终止"`
	SnStart    string `orm:"column(SnStart);size(255)" description:"sn号起始"`
}

func (t *Exceptionbox) TableUnique() [][]string {
	return [][]string{
		[]string{"BoxNum", "SnStart"},
	}
}

func (t *Exceptionbox) TableName() string {
	return "exceptionbox"
}

func init() {
	orm.RegisterModel(new(Exceptionbox))
}



3、vue代码


<template>
<div class="page-container">
<div class="search-wrapper">

<div class="block">
<div class="label">订单号</div>
    <el-input v-model="searchForm.orderId"></el-input>
  </div>
  <div class="block">
<div class="label">箱号</div>
    <el-input v-model="searchForm.boxNum"></el-input>
  </div>
  <div class="operates">
  <el-button type="primary" @click="searchClick">查询</el-button>
  <el-button type="primary" @click="resetClick">重置</el-button>
</div>
</div>
<el-table
      :data="tableData"
      style="width:100%">
      <el-table-column
        prop="Box"
        label="箱号"
      >
      </el-table-column>
      <el-table-column
        prop="SnStart"
        label="SN号起始"
       >
      </el-table-column>
       <el-table-column
        prop="SnEnd"
        label="SN号终止"
       >
      </el-table-column>
      <el-table-column
        prop="CreateTime"
        label="创建时间">
      </el-table-column>
			<el-table-column
			  prop="StatusBoxOkNum"
			  label="数量"
			 >
			 
			</el-table-column>
<el-table-column
        prop="address"
        label="操作">
           <template slot-scope="scope">
      <a @click="maintainClick(scope.row)">维修</a>
      </template>
      </el-table-column>
   
    </el-table>
   
      <el-pagination
                 @current-change="pageChange"
        :current-page.sync="pageData.Page"
        :page-size="pageData.RowNum"
        layout="total, prev, pager, next"
        :total="RowNum">
      </el-pagination>
</div>
</template>
<script>
import {BOX_API_PATH} from "../../service/api"
export default{
    data(){
        return{
            searchForm:{
                boxNum:"",
                orderId:""
            },
            RowNum:0,
            pageData:{
              Page:1,
              RowNum:20
            },
            tableData:[]
        }
    },
    created(){
      this.getBoxList()
    },
    methods:{
        getBoxList(){
            let formData = new FormData()
        formData.append("Token",sessionStorage.getItem("token"))
        formData.append("Act","GetBoxList")
        formData.append("Page",this.pageData.Page-1)
        formData.append("RowNum",this.pageData.RowNum)
        formData.append("Box",this.searchForm.boxNum)
        formData.append("OrderID",this.searchForm.orderId)
        formData.append("StatusBox",2)
   
        this.$axios.post(BOX_API_PATH,formData).then(res=>{
          if(res.data.Ret == 0){
						res.data.Data = res.data.Data?res.data.Data:[]
            res.data.Data.map(v=>{
              v.CreateTime = this.moment(v.CreateTime*1000).format("YYYY-MM-DD HH:mm:ss")
            })
		
            this.tableData = res.data.Data
            this.RowNum = res.data.Recordcount
          }else{
			  this.$message({
			  	message:res.data.Msg,
			  	type:"error",
			  	duration:3000
			  });
		  }
        })
        },
        resetClick(){
            this.searchForm = {
                boxNum:""
            }
        },
        searchClick(){
					this.getBoxList()

        },
        repairClick(scope){
            this.$prompt('SN号', '', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
         
        }).then(res=>{

        })
        },
         pageChange(){
          this.getBoxList()
        },
        maintainClick(item){
           this.$prompt('Sn', '', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
        
        }).then(({value}) => {
          let formData = new FormData()
        formData.append("Token",sessionStorage.getItem("token"))
        formData.append("Act","SetStatusBoxBySn")
        formData.append("Box",item.Box)
        formData.append("Sn",value)
        formData.append("SnStart",item.SnStart)
		formData.append("SnEnd",item.SnEnd)
        this.$axios.post(BOX_API_PATH,formData).then(res=>{
          if(res.data.Ret == 0){
			  this.getBoxList()
           
						this.$message({
							message:"Sn维修成功",
							type:"success",
							duration:3000
						});
          }else{
           
			this.$message({
				message:res.data.Msg,
				type:"error",
				duration:3000
			});
          }
        })
        })
           
        }
    }
}
</script>
<style scoped>
.search-wrapper{
display:flex;
justy-content:flex-start;
flex-wrap:wrap;

}

</style>



四、结语


本次分享结束,欢迎来撩!


完整方案介绍:《工厂订单出入库信息管理系统》完整解决方案(含演示账号)


系统演示网址:factory http://47.113.115.218:81 演示密码:123456


?

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表