wushaodong 4 年之前
父節點
當前提交
7609df5126

+ 1 - 0
apps/tenant/device/filters.py

@@ -9,6 +9,7 @@ class DeviceFilter(django_filters.FilterSet):
     name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
     device_no = django_filters.CharFilter(field_name='device_no', lookup_expr='icontains')
     device_model = django_filters.CharFilter(field_name='device_model', lookup_expr='icontains')
+    status = django_filters.CharFilter(field_name='status',)
 
     class Meta:
         model = DeviceModel

+ 10 - 0
apps/tenant/device/models.py

@@ -5,6 +5,13 @@ from apps.tenant.models import Tenant
 
 # Create your models here.
 class DeviceModel(models.Model):
+    FINE = 1
+    BAD = 2
+    STATUS_CHOICES = (
+        (FINE, '正常'),
+        (BAD, '异常'),
+    )
+
     name = models.CharField(max_length=50,verbose_name=u'名称')
     device_no = models.CharField(max_length=50, verbose_name=u'编号',null=True)
     device_model = models.CharField(max_length=100,verbose_name=u'设备型号',null=True)
@@ -15,6 +22,9 @@ class DeviceModel(models.Model):
                                     editable=False)
     create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
     wxapp_img = models.CharField(verbose_name=u'设备微信二维码', max_length=250, null=True)
+    repair_count = models.IntegerField(verbose_name='维修次数', default=0)
+    status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态',
+                                              default=FINE)
 
     class Meta:
         db_table = "device"

+ 1 - 0
apps/tenant/device/serializers.py

@@ -7,6 +7,7 @@ from .models import *
 
 class DeviceSerializer(serializers.ModelSerializer):
     create_user_text = serializers.CharField(source='create_user.employee.name', read_only=True)
+    status_text = serializers.CharField(source='get_status_display', read_only=True)
 
     class Meta:
         model = DeviceModel

+ 4 - 0
apps/tenant/inspection_order/models.py

@@ -81,6 +81,10 @@ class InspectionOrder(models.Model):
         for image in images:
             repair_order.images.add(image.id)
         repair_order.save()
+        if repair_order.device:
+            repair_order.device.repair_count += 1
+            repair_order.device.status = DeviceModel.BAD
+            repair_order.device.save()
 
         self.status = InspectionOrder.HAS_REPAIR
         self.repair_order = repair_order

+ 7 - 13
apps/tenant/repair_order/models.py

@@ -133,6 +133,10 @@ class RepairOrder(models.Model):
         self.save()
         self.user.employee.baoxiu_count += 1
         self.user.employee.save()
+        if self.device:
+            self.device.repair_count += 1
+            self.device.status = DeviceModel.BAD
+            self.device.save()
         RepairOrderRecord.objects.create(repair_order=self, status=settings.CHECKED, user=user)
         tenant_log(user.employee, BizLog.INSERT, u'审核报修工单[%s],id=%d' % (self.no, self.id))
 
@@ -152,23 +156,13 @@ class RepairOrder(models.Model):
             raise CustomError('该报修单已作废!')
         self.status = settings.INVALID
         self.save()
+        if self.device:
+            self.device.status = DeviceModel.FINE
+            self.device.save()
         # 记录操作
         RepairOrderRecord.objects.create(repair_order=self, status=settings.INVALID, user=user)
         tenant_log(user.employee, BizLog.UPDATE, u'作废报修工单[%s],id=%d' % (self.no, self.id))
 
-    def finish_order(self, user, notes, images):
-        # 完工
-        self.status = settings.FINISH
-        self.save()
-
-        # 记录操作
-        repair_order_record = RepairOrderRecord.objects.create(repair_order=self, status=settings.FINISH, user=user,
-                                                               notes=notes)
-        for image in images:
-            repair_order_record.images.add(image)
-        repair_order_record.save()
-
-
 class RepairOrderRecord(models.Model):
     repair_order = models.ForeignKey(RepairOrder, verbose_name='报修工单', on_delete=models.PROTECT,
                                      related_name='repair_order_record')

+ 1 - 1
apps/wxapp/repair_order/serializers.py

@@ -61,7 +61,7 @@ class RepairOrderListSerializer(serializers.ModelSerializer):
 class RepairOrderSerializer(serializers.ModelSerializer):
     class Meta:
         model = RepairOrder
-        fields = ('id', 'fault_des', 'tel', 'name', 'repair_type','device_name','device_address',)
+        fields = ('id', 'fault_des', 'tel', 'name', 'device', 'repair_type','device_name','device_address',)
 
     def create(self, validated_data):
         if 'file' in self.initial_data:

+ 4 - 1
apps/wxapp/repair_order/views.py

@@ -9,7 +9,7 @@ from utils import response_ok, response_error
 from utils.custom_modelviewset import CustomModelViewSet
 from utils.exceptions import CustomError
 from utils.permission import isLogin, IsEmployee
-from apps.tenant.repair_order.models import RepairOrder, RepairOrderRecord, RepairOrderComment, RepairOrderFinish
+from apps.tenant.repair_order.models import RepairOrder, RepairOrderRecord, RepairOrderComment, RepairOrderFinish, DeviceModel
 from apps.tenant.repair_order.filters import RepairOrderFilter
 from apps.upload.models import Upload
 from apps.log.models import BizLog
@@ -270,6 +270,9 @@ class RepairOrderViewSet(CustomModelViewSet):
                 # 更新工单状态为完工
                 instance.status = settings.FINISH
                 instance.save()
+                if instance.device:
+                    instance.device.status = DeviceModel.FINE
+                    instance.device.save()
                 # 写入完工表
                 repair_order_finish = RepairOrderFinish.objects.create(repair_order_id=pk,
                                                                        fault_cause_id=fault_cause_id,

+ 9 - 0
uis/tenant/device/index.html

@@ -89,6 +89,13 @@
                                 <input type="text" name="name" autocomplete="off" class="layui-input"
                                        placeholder="设备名称"/>
                             </div>
+                            <div class="seach_items">
+                                <select name="status" style="width: 40px;">
+                                    <option value="">请选择状态</option>
+                                    <option value="1">正常</option>
+                                    <option value="2">异常</option>
+                                </select>
+                            </div>
                         </form>
                         <div style="clear: both;"></div>
                     </div>
@@ -131,6 +138,8 @@
                 , {field: 'device_model', title: '型号', width: 200}
                 , {field: 'branch', title: '大地点', width: 150}
                 , {field: 'address', title: '小地点', width: 200}
+                , {field: 'status_text', title: '状态', width: 100}
+                , {field: 'repair_count', title: '维修次数', width: 100}
                 , {field: 'create_user_text', title: '添加人', width: 100}
                 , {field: 'create_time', title: '添加时间', width: 200}
                 , {width: 150, align: 'center', fixed: 'right', toolbar: '#device-operate-bar'}