diff --git a/hb_client/src/api/inm.js b/hb_client/src/api/inm.js index 3258078..354861a 100644 --- a/hb_client/src/api/inm.js +++ b/hb_client/src/api/inm.js @@ -28,3 +28,32 @@ export function deleteWarehouse(id, data) { data }) } +//物料 +export function getInventoryList(query) { + return request({ + url: '/inm/inventory/', + method: 'get', + params: query + }) +} +export function createInventory(data) { + return request({ + url: '/inm/inventory/', + method: 'post', + data + }) +} +export function updateInventory(id, data) { + return request({ + url: `/inm/inventory/${id}/`, + method: 'put', + data + }) +} +export function deleteInventory(id, data) { + return request({ + url: `/inm/inventory/${id}/`, + method: 'delete', + data + }) +} diff --git a/hb_client/src/router/index.js b/hb_client/src/router/index.js index 9685b0e..b88f42e 100644 --- a/hb_client/src/router/index.js +++ b/hb_client/src/router/index.js @@ -225,12 +225,26 @@ export const asyncRoutes = [ name: 'warehouse', component: () => import('@/views/inm/warehouse'), meta: { title: '仓库', icon: 'example', perms: ['index_manage'] } + } + , + { + path: 'warehouse', + name: 'warehouse', + component: () => import('@/views/inm/warehouse'), + meta: { title: '物料库存', icon: 'example', perms: ['index_manage'] } }, { path: 'warehouse', name: 'warehouse', component: () => import('@/views/inm/warehouse'), - meta: { title: '仓库', icon: 'example', perms: ['index_manage'] } + meta: { title: '半成品库存', icon: 'example', perms: ['index_manage'] } + } + , + { + path: 'warehouse', + name: 'warehouse', + component: () => import('@/views/inm/warehouse'), + meta: { title: '成品库存', icon: 'example', perms: ['index_manage'] } } ] }, @@ -253,7 +267,7 @@ export const asyncRoutes = [ path: 'vendor', name: 'vendor', component: () => import('@/views/procurement/vendor'), - meta: { title: '供应商', icon: 'example', perms: ['vendor_manage'] } + meta: { title: '采购订单', icon: 'example', perms: ['vendor_manage'] } } ] }, diff --git a/hb_client/src/views/em/record.vue b/hb_client/src/views/em/record.vue index a862578..0db948c 100644 --- a/hb_client/src/views/em/record.vue +++ b/hb_client/src/views/em/record.vue @@ -198,6 +198,7 @@ export default { page: 1, page_size: 20, }, + equipmentoptions:[], state_:{ 0:'合格', 1:'准用', diff --git a/hb_client/src/views/mtm/step.vue b/hb_client/src/views/mtm/step.vue index 48f3c4d..978f979 100644 --- a/hb_client/src/views/mtm/step.vue +++ b/hb_client/src/views/mtm/step.vue @@ -545,6 +545,7 @@ } this.getList(); }, + //新增工序 handleCreateStep() { this.step = Object.assign({}, defaultstep); this.dialogTypes = "new"; @@ -640,6 +641,7 @@ }); }, + //新增记录表 handleCreate() { this.recordform = Object.assign({}, defaultrecordform); this.dialogType = "new"; @@ -648,6 +650,7 @@ this.$refs["Forms"].clearValidate(); }); }, + //新增字段 handlefieldCreate() { this.field_choice = ['']; diff --git a/hb_client/src/views/procurement/vendor.vue b/hb_client/src/views/procurement/vendor.vue index 9f1892e..71c5579 100644 --- a/hb_client/src/views/procurement/vendor.vue +++ b/hb_client/src/views/procurement/vendor.vue @@ -54,6 +54,9 @@ + + + @@ -114,7 +117,9 @@ - + + + + + + + @@ -51,6 +60,32 @@ /> + + + + + + + + + + @@ -168,6 +203,10 @@ export default { { value: "男", label: "男" }, { value: "女", label: "女" } ], + jobstateOptions:[ + { value: 1, label: "在职" }, + { value: 2, label: "离职" } + ], rules: { ID_number: [ diff --git a/hb_server/apps/hrm/migrations/0002_auto_20210924_1127.py b/hb_server/apps/hrm/migrations/0002_auto_20210924_1127.py new file mode 100644 index 0000000..89485c7 --- /dev/null +++ b/hb_server/apps/hrm/migrations/0002_auto_20210924_1127.py @@ -0,0 +1,35 @@ +# Generated by Django 3.2.6 on 2021-09-24 03:27 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0003_auto_20210812_0909'), + ('hrm', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='employee', + name='academic', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='学历'), + ), + migrations.AddField( + model_name='employee', + name='birthdate', + field=models.DateField(blank=True, null=True, verbose_name='出生年月'), + ), + migrations.AddField( + model_name='employee', + name='job', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.position', verbose_name='岗位'), + ), + migrations.AddField( + model_name='employee', + name='jobstate', + field=models.IntegerField(choices=[(1, '在职'), (2, '离职')], default=1, verbose_name='在职状态'), + ), + ] diff --git a/hb_server/apps/hrm/models.py b/hb_server/apps/hrm/models.py index adb8b44..c448e64 100644 --- a/hb_server/apps/hrm/models.py +++ b/hb_server/apps/hrm/models.py @@ -3,22 +3,31 @@ from django.contrib.auth.models import AbstractUser from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet -from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File +from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File,Position from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords + class Employee(CommonAModel): """ 员工信息 """ + jobstate_choices = ( + (1, '在职'), + (2, '离职'), + ) user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee_user') number = models.CharField('人员编号', max_length=50,null=True, blank=True, unique=True) photo = models.CharField('证件照', max_length=1000, null=True, blank=True) ID_number = models.CharField('身份证号', max_length=100, null=True, blank=True) gender = models.CharField('性别', max_length=10, default='男') signature = models.CharField('签名图片', max_length=200, null=True, blank=True) + birthdate = models.DateField('出生年月', null=True, blank=True) + academic = models.CharField('学历', max_length=50, null=True, blank=True) + jobstate = models.IntegerField('在职状态', choices=jobstate_choices, default=1) + job = models.ForeignKey(Position, null=True, blank=True, on_delete=models.SET_NULL, verbose_name='岗位') class Meta: verbose_name = '员工补充信息' verbose_name_plural = verbose_name diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index 06607f1..808f470 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -1,8 +1,9 @@ from rest_framework import serializers -from apps.inm.models import WareHouse +from apps.inm.models import WareHouse,Inventory from apps.system.serializers import UserSimpleSerializer +from apps.mtm.serializers import MaterialSimpleSerializer class WareHouseSerializer(serializers. ModelSerializer): create_by_=UserSimpleSerializer('create_by', read_only=True) @@ -13,4 +14,21 @@ class WareHouseSerializer(serializers. ModelSerializer): class WareHouseCreateUpdateSerializer(serializers.ModelSerializer): class Meta: model = WareHouse - fields = ['name', 'number', 'place'] \ No newline at end of file + fields = ['name', 'number', 'place'] + +class WareHouseSimpleSerializer(serializers.ModelSerializer): + class Meta: + model = WareHouse + fields = ['name', 'number', 'place'] + +class InventorySerializer(serializers. ModelSerializer): + material_= MaterialSimpleSerializer(source='material', read_only=True) + warehouse_ = WareHouseSimpleSerializer(source='material', read_only=True) + class Meta: + model = Inventory + fields = '__all__' + +class InventoryCreateUpdateSerializer(serializers.ModelSerializer): + class Meta: + model = Inventory + fields = ['material', 'count', 'warehouse'] diff --git a/hb_server/apps/inm/urls.py b/hb_server/apps/inm/urls.py index 4faa6f3..d680958 100644 --- a/hb_server/apps/inm/urls.py +++ b/hb_server/apps/inm/urls.py @@ -1,11 +1,12 @@ from django.db.models import base from rest_framework import urlpatterns -from apps.inm.views import WarehouseViewSet +from apps.inm.views import WarehouseViewSet,InventoryViewSet from django.urls import path, include from rest_framework.routers import DefaultRouter router = DefaultRouter() router.register('warehouse', WarehouseViewSet, basename='warehouse') +router.register('inventory', InventoryViewSet, basename='inventory') urlpatterns = [ path('', include(router.urls)), ] diff --git a/hb_server/apps/inm/views.py b/hb_server/apps/inm/views.py index 62ae7ac..4c3b8c4 100644 --- a/hb_server/apps/inm/views.py +++ b/hb_server/apps/inm/views.py @@ -1,8 +1,8 @@ from django.shortcuts import render from rest_framework.viewsets import ModelViewSet -from apps.inm.models import WareHouse -from apps.inm.serializers import WareHouseSerializer, WareHouseCreateUpdateSerializer +from apps.inm.models import WareHouse,Inventory +from apps.inm.serializers import WareHouseSerializer, WareHouseCreateUpdateSerializer,InventorySerializer,InventoryCreateUpdateSerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin @@ -23,3 +23,18 @@ class WarehouseViewSet(CreateUpdateModelAMixin, ModelViewSet): if self.action in ['create', 'update']: return WareHouseCreateUpdateSerializer return WareHouseSerializer +class InventoryViewSet(CreateUpdateModelAMixin, ModelViewSet): + """ + 物料基本信息-增删改查 + """ + perms_map = {'*': '*'} + queryset = Inventory.objects.select_related('create_by').all() + serializer_class = InventorySerializer + filterset_fields = [] + ordering_fields = ['create_time'] + ordering = ['-create_time'] + + def get_serializer_class(self): + if self.action in ['create', 'update']: + return InventoryCreateUpdateSerializer + return InventorySerializer diff --git a/hb_server/apps/pum/migrations/0002_vendor_material.py b/hb_server/apps/pum/migrations/0002_vendor_material.py new file mode 100644 index 0000000..3bc35b3 --- /dev/null +++ b/hb_server/apps/pum/migrations/0002_vendor_material.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.6 on 2021-09-24 06:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pum', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='vendor', + name='material', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='供应的物料'), + ), + ] diff --git a/hb_server/apps/pum/models.py b/hb_server/apps/pum/models.py index bf5d5a7..a705f8a 100644 --- a/hb_server/apps/pum/models.py +++ b/hb_server/apps/pum/models.py @@ -18,6 +18,7 @@ class Vendor(CommonAModel): contact_phone = models.CharField('联系电话', max_length=11, unique=True) address = models.CharField('地址', max_length=200, null=True, blank=True) description = models.CharField('描述', max_length=200, blank=True, null=True) + material = models.CharField('供应的物料', max_length=200, blank=True, null=True) class Meta: verbose_name = '供应商信息' verbose_name_plural = verbose_name