0 项目说明
基于Django大数据的投标管理与可视化系统
提示:适合用于课程设计或毕业设计,工作量达标,源码开放
1 研究目的
通过构建合理的信息平台并借用一定数据分析技术,实现信息的快速传递,数据的有效归纳及充分利用历史记录识别客户、激励员工、提升投标质量等,可以增强企业的投标履约能力,从而提升企业的竞争力和环境应变力,具有一定的现实意义。能够帮助企业有效管理从招投标准备到中标后合同履约管理的全过程。
2 研究方法
2.1 系统边界和模块关系
2.2 一级数据流程图
2.3 实体-关系模型
在系统设计部分,采用了实体-关系模型(E-R模型)来对整个系统的数据进行了建模。在概念模型的基础上进行了详细的数据库表的设计
为体现创新性,后面在系统功能上新增了一个标价预测,是用历史数据中同一种类机械的中标价格,基于多种时间序列模型来预测未来的中标价格。这个实际上是没有现实基础的,因为实际的中标价格还与原材料、供应商关系、客户关系、工人成本、客户细节需求等都有密切关系,仅依靠机型来划分价格进行预测是缺乏实际意义的。
2.4 系统实现
成了ECharts可是化工具,轻松地完成了网页端的很多可视化需求。
整个系统是基于Django框架实现的(简单实现,可以前台页面输入,然后在后台数据库里存数据,功能上实现简单处理数据后返回,没有部署服务器,本地版),也就是用Python来写的。
2.5 研究结论
2.6 目录
3 项目源码
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='AiarmParam',
fields=[
('apID', models.AutoField(primary_key=True, serialize=False)),
('aContent', models.CharField(max_length=20, null=True)),
],
),
migrations.CreateModel(
name='Alarm',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(auto_now_add=True, null=True)),
('aState', models.CharField(max_length=10, null=True)),
('exDay', models.IntegerField(null=True)),
('aKind', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.AiarmParam')),
],
),
migrations.CreateModel(
name='BidInvitation',
fields=[
('inviteID', models.AutoField(primary_key=True, serialize=False)),
('inviteTime', models.DateField(null=True)),
('inviteName', models.CharField(max_length=30, null=True)),
('inviteContent', models.TextField(null=True)),
('endTime', models.DateTimeField(null=True)),
('resWay', models.CharField(max_length=200, null=True)),
('preBidTime', models.DateField(null=True)),
('response', models.CharField(max_length=2, null=True)),
],
),
migrations.CreateModel(
name='BidRequest',
fields=[
('rID', models.AutoField(primary_key=True, serialize=False)),
('rKind', models.CharField(max_length=2, null=True)),
('rName', models.CharField(max_length=30, null=True)),
('rContent', models.CharField(max_length=100, null=True)),
],
),
migrations.CreateModel(
name='BidResult',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateField(auto_now_add=True)),
('isWin', models.BooleanField(null=True)),
('winPrice', models.IntegerField(null=True)),
('winCompany', models.CharField(max_length=30, null=True)),
('lostReason', models.CharField(max_length=30, null=True)),
('remark', models.CharField(max_length=100, null=True)),
],
),
migrations.CreateModel(
name='Contract',
fields=[
('contractID', models.AutoField(primary_key=True, serialize=False)),
('newVerID', models.IntegerField(null=True)),
('contractDocPath', models.TextField(null=True)),
('contractPrice', models.IntegerField(null=True)),
('firPartPrice', models.DecimalField(decimal_places=2, max_digits=3, null=True)),
('secPartPrice', models.DecimalField(decimal_places=2, max_digits=3, null=True)),
('thrPartPrice', models.DecimalField(decimal_places=2, max_digits=3, null=True)),
('firTimeSpan', models.IntegerField(null=True)),
('secTimeSpan', models.IntegerField(null=True)),
('thrTimeSpan', models.IntegerField(null=True)),
('productTime', models.IntegerField(null=True)),
('conveyTime', models.IntegerField(null=True)),
('FATDoc', models.TextField(null=True)),
('SATDoc', models.TextField(null=True)),
('signTime', models.DateField(null=True)),
],
),
migrations.CreateModel(
name='Customer',
fields=[
('cID', models.AutoField(primary_key=True, serialize=False)),
('cName', models.CharField(max_length=50, null=True)),
('cEnglishName', models.CharField(max_length=100, null=True)),
('cAddress', models.CharField(max_length=80, null=True)),
('cContactPerson', models.CharField(max_length=20, null=True)),
('cPhone', models.CharField(max_length=20, null=True)),
],
),
migrations.CreateModel(
name='Device',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('deviceName', models.CharField(max_length=20, null=True)),
('deviceID', models.CharField(max_length=200, null=True)),
('functionWord', models.CharField(max_length=100, null=True)),
('picPath', models.TextField(null=True)),
],
),
migrations.CreateModel(
name='ExtraRequest',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(auto_now_add=True, null=True)),
('requestContent', models.TextField(null=True)),
('answer', models.CharField(max_length=2, null=True)),
('remark', models.TextField(null=True)),
('contractID', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Contract')),
],
),
migrations.CreateModel(
name='Project',
fields=[
('pID', models.AutoField(primary_key=True, serialize=False)),
('pName', models.CharField(max_length=40, null=True)),
('startTime', models.DateField(null=True)),
('endTime', models.DateField(null=True)),
('bidPrice', models.IntegerField(null=True)),
('bidDocPath', models.TextField(null=True)),
('remark', models.CharField(max_length=100, null=True)),
('isGuaratee', models.CharField(max_length=2, null=True)),
('currentKind', models.CharField(max_length=3, null=True)),
('quantity', models.IntegerField(null=True)),
('aimDevice', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Device')),
('inviteID', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.BidInvitation')),
],
),
migrations.CreateModel(
name='ProjectProccess',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(auto_now_add=True, null=True)),
('pID', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Project')),
],
),
migrations.CreateModel(
name='Staff_Project',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('job', models.CharField(max_length=2, null=True)),
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Project')),
],
),
migrations.CreateModel(
name='StateParam',
fields=[
('paramID', models.AutoField(primary_key=True, serialize=False)),
('paramContent', models.CharField(max_length=100, null=True)),
('remark', models.CharField(max_length=20, null=True)),
],
),
migrations.CreateModel(
name='User',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('uID', models.CharField(max_length=7, null=True)),
('uName', models.CharField(max_length=10, null=True)),
('uAge', models.IntegerField(null=True)),
('uGender', models.CharField(max_length=2, null=True)),
('uKind', models.CharField(max_length=2, null=True)),
('uPassword', models.CharField(max_length=10, null=True)),
('uPhone', models.CharField(max_length=20, null=True)),
('uWorkTime', models.IntegerField(null=True)),
],
),
migrations.CreateModel(
name='VersionRecord',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('verID', models.IntegerField(null=True)),
('docPath', models.TextField(null=True)),
('time', models.DateTimeField(auto_now_add=True, null=True)),
('contractID', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Contract')),
],
),
migrations.AddField(
model_name='staff_project',
name='staff',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bidHelp.User'),
),
migrations.AddField(
model_name='projectproccess',
name='proccess',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.StateParam'),
),
migrations.AddField(
model_name='project',
name='pState',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.StateParam'),
),
migrations.AddField(
model_name='contract',
name='pID',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Project'),
),
migrations.AddField(
model_name='contract',
name='state',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bidHelp.StateParam'),
),
migrations.AddField(
model_name='bidresult',
name='pID',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Project'),
),
migrations.AddField(
model_name='bidrequest',
name='pID',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Project'),
),
migrations.AddField(
model_name='bidinvitation',
name='cID',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bidHelp.Customer'),
),
]
4 最后
**项目分享: ** https://gitee.com/asoonis/htw