-
+
-
- 搜索
-
- 重置
-
+
+ 搜索
+
+ 重置
+
@@ -44,22 +44,22 @@
{{ scope.row.material_.specification }}
-
+
{{ actstate_[scope.row.act_state] }}
-
+
{{ scope.row.subproduction_plan_.number }}
-
+ :filter-method="filterTag"
+ filter-placement="bottom-end">
{{ scope.row.step_.name }}
@@ -90,7 +90,6 @@
:limit.sync="listQuery.page_size"
@pagination="getList"
/>
-
@@ -119,36 +118,36 @@
- 搜索
-
- 重置
-
+ v-model="listQuery2.search"
+ placeholder="半成品名称/编号/子计划编号/工序"
+ style="width: 300px"
+ class="filter-item"
+ @keyup.enter.native="handleFilter2"
+ />
+ 搜索
+
+ 重置
+
@@ -158,7 +157,7 @@
{{ scope.row.number }}
-
+
{{ scope.row.material_.specification }}
@@ -166,15 +165,15 @@
{{ actstate_[scope.row.act_state] }}
-
+
{{ scope.row.subproduction_plan_.number }}
+ :filter-method="filterTag">
{{ scope.row.step_.name }}
@@ -206,37 +205,37 @@
批量入库
-
- 搜索
-
- 重置
-
+
+ 搜索
+
+ 重置
+
{{ scope.row.number }}
-
+
{{ scope.row.material_.specification }}
@@ -259,15 +258,15 @@
{{ actstate_[scope.row.act_state] }}
-
+
{{ scope.row.subproduction_plan_.number }}
+ :filter-method="filterTag">
{{ scope.row.step_.name }}
@@ -297,36 +296,36 @@
-
- 搜索
-
- 重置
-
+
+ 搜索
+
+ 重置
+
@@ -341,14 +340,14 @@
{{ actstate_[scope.row.act_state] }}
-
+
{{ scope.row.material_.specification }}
+ :filter-method="filterTag">
{{ scope.row.step_.name }}
@@ -356,7 +355,7 @@
{{ ng_sign_[scope.row.ng_sign] }}
-
+
{{ scope.row.subproduction_plan_.number }}
@@ -390,26 +389,23 @@
-
-
{{ scope.row.material_.name }}
-
{{ scope.row.number }}
-
+
{{ scope.row.material_.specification }}
@@ -417,26 +413,25 @@
{{ actstate_[scope.row.act_state] }}
-
+
{{ scope.row.subproduction_plan_.number }}
-
+ { text: '夹层', value: '夹层' }, { text: '包边', value: '包边' }]" :filter-method="filterTag">
{{ scope.row.step_.name }}
检验
检验记录
@@ -624,7 +619,7 @@
@@ -779,8 +774,8 @@
import checkPermission from "@/utils/permission";
import customForm from '@/components/customForm/index';
import reviewForm from '@/components/customForm/review';
- import { createTicket, getWorkflowInit} from "@/api/workflow";
- import { getrecordformList, getrffieldList} from "@/api/mtm";
+ import {createTicket, getWorkflowInit} from "@/api/workflow";
+ import {getrecordformList, getrffieldList} from "@/api/mtm";
import {getwproductList, wproductPutin, createputins, testInit, scrap, getRetrial} from "@/api/wpm";
import {getTestRecord, getTestRecordItem, putTestRecordItem, delTestRecordItem, subTestRecordItem} from "@/api/qm";
// import {genTree} from "@/utils";
@@ -829,7 +824,7 @@
page: 1,
page_size: 20,
},
- activeName: "1",
+ activeName: "1",
create_by_: '',
update_time: '',
formLabelWidth: '',
@@ -943,30 +938,21 @@
},
methods: {
checkPermission,
- handleClick(tab) {
+ handleClick(tab) {
this.listLoading = true;
this.listQuery.type = tab.name;
- if(tab.name==1)
- {
- this.getList();
+ if (tab.name == 1) {
+ this.getList();
+ } else if (tab.name == 2) {
+ this.getList2();
+ } else if (tab.name == 3) {
+ this.getList1();
+ } else if (tab.name == 4) {
+ this.getList4();
+ } else if (tab.name == 5) {
+ this.getList3();
}
- else if(tab.name==2)
- {
- this.getList2();
- }
- else if(tab.name==3)
- {
- this.getList1();
- }
- else if(tab.name==4)
- {
- this.getList4();
- }
- else if(tab.name==5)
- {
- this.getList3();
- }
-
+
},
//待检半成品列表
getList() {
@@ -979,12 +965,12 @@
this.listLoading = false;
});
},
- handleFilter1() {
+ handleFilter1() {
this.listQuery.page = 1;
this.getList();
},
resetFilter1() {
-
+
this.listQuery = {
page: 1,
page_size: 20,
@@ -1019,12 +1005,12 @@
}
});
},
- handleFilter2() {
+ handleFilter2() {
this.listQuery2.page = 1;
this.getList2();
},
resetFilter2() {
-
+
this.listQuery2 = {
page: 1,
page_size: 20,
@@ -1042,12 +1028,12 @@
});
},
- handleFilter3() {
+ handleFilter3() {
this.listQuery1.page = 1;
this.getList1();
},
resetFilter3() {
-
+
this.listQuery1 = {
page: 1,
page_size: 20,
@@ -1065,12 +1051,12 @@
});
},
- handleFilter4() {
+ handleFilter4() {
this.listQuery4.page = 1;
this.getList4();
},
resetFilter4() {
-
+
this.listQuery4 = {
page: 1,
page_size: 20,
@@ -1152,7 +1138,7 @@
});
},
//筛选
- filterTag(value, row) {
+ filterTag(value, row) {
return row.step_.name === value;
},
//夹层半成品列表
@@ -1204,7 +1190,11 @@
// this.outerVisible = true;
that.wproduct = scope.row.id;//半成品ID
that.listQueryrecordform.material = scope.row.material;
- that.listQueryrecordform.type = 20;
+ if (index === '3') {
+ that.listQueryrecordform.type = 40;
+ } else {
+ that.listQueryrecordform.type = 20;
+ }
that.listQueryrecordform.enabled = true;
that.recordform = null;
getrecordformList(that.listQueryrecordform).then((response) => {
@@ -1251,8 +1241,8 @@
that.recordId = scope.row.id;
that.recordform = scope.row.form;
that.formName = scope.row.form_.name;
- if(that.innerIndex==='1'){//非复检
- getrffieldList({form: this.recordform,enabled:true, page: 1, page_size: 100}).then((response) => {
+ if (that.innerIndex !== '2') {//非复检
+ getrffieldList({form: this.recordform, enabled: true, page: 1, page_size: 100}).then((response) => {
if (response.data) {
that.hasPicture = false;
let fieldList = response.data.results;
@@ -1378,7 +1368,7 @@
this.outerVisible = false;
that.fieldList = [];
if (that.recordform != "") {
- if (index === '1') {//非复检
+ if (index !== '2') {//非复检
testInit({wproduct: that.wproduct, form: that.recordform}).then((response) => {
if (response.data) {
that.hasPicture = false;
diff --git a/hb_client/src/views/wpm/productjy.vue b/hb_client/src/views/wpm/productjy.vue
index 98eb3ad..ac9eb72 100644
--- a/hb_client/src/views/wpm/productjy.vue
+++ b/hb_client/src/views/wpm/productjy.vue
@@ -18,7 +18,6 @@
scope.row.material_.name
}}
-
{{ scope.row.number }}
@@ -27,7 +26,6 @@
{{ actstate_[scope.row.act_state] }}
-
{{ scope.row.step_.name }}
@@ -59,14 +57,11 @@
/>
-
批量入库
-
-
-
-
-
-
{
if (response.data) {
diff --git a/hb_server/apps/mtm/views.py b/hb_server/apps/mtm/views.py
index 4a972cf..2862a39 100644
--- a/hb_server/apps/mtm/views.py
+++ b/hb_server/apps/mtm/views.py
@@ -77,8 +77,8 @@ class StepViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet):
"""
子工序-增删改查
"""
- perms_map = {'get':'*', 'post':'step_create',
- 'put':'step_update', 'delete':'step_delete'}
+ perms_map = {'get':'*', 'post':'process_update',
+ 'put':'process_update', 'delete':'process_update'}
queryset = Step.objects.all()
serializer_class = StepSerializer
search_fields = ['name', 'number']
diff --git a/hb_server/apps/pm/views.py b/hb_server/apps/pm/views.py
index 4257e9f..c827e5d 100644
--- a/hb_server/apps/pm/views.py
+++ b/hb_server/apps/pm/views.py
@@ -411,7 +411,7 @@ class ResourceViewSet(GenericViewSet):
del(half_list[0])
return Response(res)
- @action(methods=['post'], detail=False, perms_map={'post':'resource_cal_equip'}, serializer_class=ResourceCalListSerializer)
+ @action(methods=['post'], detail=False, perms_map={'post':'resource_cal'}, serializer_class=ResourceCalListSerializer)
def cal_equip(self, request, pk=None):
"""
设备状态查看
diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py
index da60306..95200e2 100644
--- a/hb_server/apps/sam/views.py
+++ b/hb_server/apps/sam/views.py
@@ -63,7 +63,7 @@ class OrderViewSet(CreateUpdateCustomMixin, ModelViewSet):
return OrderCreateUpdateSerializer
return super().get_serializer_class()
- @action(methods=['get'], detail=False, perms_map={'get':'order_toplan'})
+ @action(methods=['get'], detail=False, perms_map={'get':'*'})
def toplan(self, request, pk=None):
queryset = Order.objects.filter(count__gt=F('planed_count')).order_by('-id')
page = self.paginate_queryset(queryset)
diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py
index 61ae4b5..79b4234 100644
--- a/hb_server/apps/wpm/serializers.py
+++ b/hb_server/apps/wpm/serializers.py
@@ -93,15 +93,16 @@ class PickSerializer(serializers.Serializer):
FIFOItemProduct.objects.bulk_create(mls)
# 更新车间物料
- wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \
- subproduction_plan=sp,defaults={
- 'material':i['material'],
- 'batch':i['batch'],
- 'subproduction_plan':sp,
- 'count':0
- })
- wm.count = wm.count + i['count']
- wm.save()
+ if i['material'].type != Material.MA_TYPE_HALFGOOD:
+ wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \
+ subproduction_plan=sp,defaults={
+ 'material':i['material'],
+ 'batch':i['batch'],
+ 'subproduction_plan':sp,
+ 'count':0
+ })
+ wm.count = wm.count + i['count']
+ wm.save()
# 更新子计划物料情况
spp = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=SubprodctionMaterial.SUB_MA_TYPE_IN)
spp.count_pick = spp.count_pick + i['count']
diff --git a/hb_server/apps/wpm/services.py b/hb_server/apps/wpm/services.py
index f836273..36db321 100644
--- a/hb_server/apps/wpm/services.py
+++ b/hb_server/apps/wpm/services.py
@@ -54,6 +54,10 @@ class WpmService(object):
if wproduct.act_state == WProduct.WPR_ACT_STATE_TORETEST: # 复检
wproduct.act_state = WProduct.WPR_ACT_STATE_DOWAIT
+ elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \
+ wproduct.subproduction_plan.subproduction.need_combtest : # 配置中需要质检
+ wproduct.act_state = WProduct.WPR_ACT_STATE_TOCOMBTEST
+
elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \
test.is_midtesting is True:
wproduct.act_state = WProduct.WPR_ACT_STATE_DOWAIT
@@ -62,9 +66,7 @@ class WpmService(object):
elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and wproduct.material.type == Material.MA_TYPE_GOOD: # 成品检验
wproduct.act_state = WProduct.WPR_ACT_STATE_TOFINALTEST
- elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \
- wproduct.subproduction_plan.subproduction.need_combtest : # 配置中需要质检
- wproduct.act_state = WProduct.WPR_ACT_STATE_TOCOMBTEST
+
else:
wproduct.act_state = WProduct.WPR_ACT_STATE_OK
if wproduct.number is None: # 产生半成品编号
diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py
index 59a4086..b2e6c3e 100644
--- a/hb_server/apps/wpm/views.py
+++ b/hb_server/apps/wpm/views.py
@@ -141,7 +141,7 @@ class WMaterialViewSet(CreateUpdateModelAMixin, ListModelMixin, GenericViewSet):
ordering_fields = ['material__number']
ordering = ['material__number']
- @action(methods=['post'], detail=False, perms_map={'post': 'pick'}, serializer_class=PickSerializer)
+ @action(methods=['post'], detail=False, perms_map={'post': 'wmaterial_pick'}, serializer_class=PickSerializer)
def pick(self, request, pk=None):
"""
领料
@@ -281,6 +281,8 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
ip = {}
ip['fifoitem'] = fifoitem
ip['wproduct'] = i
+ if i.number is None:
+ raise exceptions.APIException('缺少编号')
ip['number'] = i.number
ip['material'] = i.material
ips.append(FIFOItemProduct(**ip))
@@ -815,6 +817,7 @@ class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMix
raise exceptions.APIException('该操作已提交')
instance.delete()
wp = instance.wproduct
+ wp.act_state = WProduct.WPR_ACT_STATE_DOWAIT
wp.operation = None
wp.save()
return Response()