baoyubo 6 روز پیش
والد
کامیت
aa95e42db3
1فایلهای تغییر یافته به همراه123 افزوده شده و 79 حذف شده
  1. 123 79
      routers/api/dutyManagement/schedule.py

+ 123 - 79
routers/api/dutyManagement/schedule.py

@@ -196,84 +196,128 @@ async def get_dict_data_by_type(
         })
 
 
-#
-# @router.post('/create')
-# async def create_dict_data(
-#     db: Session = Depends(get_db),
-#     body = Depends(remove_xss_json),
-#     user_id = Depends(valid_access_token)
-# ):
-#     try:
-#         # 创建一个新的 SysDictData 实例
-#         new_position_data = DutySchedule(
-#             sort_number=body['sort_number'],
-#             position_name=body['position_name'],
-#             type=body['type'],
-#             create_by=user_id
-#         )
-#
-#         # 添加到会话并提交
-#         db.add(new_position_data)
-#         db.commit()
-#
-#         # 构建返回结果
-#         result = {
-#             "code": 200,
-#             "msg": "操作成功",
-#             "data": None
-#         }
-#         return result
-#     except Exception as e:
-#         # 处理异常
-#         traceback.print_exc()
-#         return JSONResponse(status_code=404, content={
-#             'code': 404,
-#             'msg': str(e)
-#         })
-#
-#
-# @router.put("/update")
-# async def updata_dict_type(
-#     db: Session = Depends(get_db),
-#     body = Depends(remove_xss_json),
-#     user_id = Depends(valid_access_token)
-# ):
-#     try:
-#         # 从请求数据创建一个新的 SysDictType 实例
-#         query = db.query(DutySchedule)
-#         query = query.filter(DutySchedule.id == body['id'])
-#         query = query.filter(DutySchedule.del_flag != '2')
-#
-#         # query = db.query(SysDictData).filter(SysDictData.dict_code == form_data.dictCode)
-#         # query = db.query(SysDictData).filter(SysDictData.del_flag != '2')
-#
-#         position_data = query.first()
-#         if not position_data:
-#             return JSONResponse(status_code=404, content={
-#                 'errcode': 404,
-#                 'errmsg': '岗位不存在'
-#             })
-#         position_data.sort_number=body['sort_number']
-#         position_data.position_name = body['position_name']
-#         position_data.type = body['type']
-#         position_data.update_by = user_id
-#         # 添加到数据库会话并提交
-#         db.commit()
-#         # db.refresh(new_dict_type)  # 可选,如果需要刷新实例状态
-#
-#         # 构建并返回响应
-#         return {
-#             "code": 200,
-#             "msg": "操作成功",
-#             "data": None  # 根据你的响应示例,data 为 null
-#         }
-#     except Exception as e:
-#         # 处理异常
-#         traceback.print_exc()
-#         return JSONResponse(status_code=404, content={
-#             'code': 404,
-#             'msg': str(e)
-#         })
+
+@router.post('/create')
+async def create_dict_data(
+    db: Session = Depends(get_db),
+    body = Depends(remove_xss_json),
+    user_id = Depends(valid_access_token)
+):
+    try:
+        # 创建一个新的 SysDictData 实例
+        user_data = body['user_data']
+        if len(user_data)==0:
+            return JSONResponse(status_code=404, content={
+                'errcode': 404,
+                'errmsg': '值班人员不能为空'
+            })
+        new_duty_data = DutySchedule(
+            start_time=body['start_time'],
+            end_time=body['end_time'],
+            duty_date=body['duty_date'],
+            shift_type=body['shift_type'],
+            duty_unit=body['duty_unit'],
+            duty_type=body['duty_type'],
+            create_by=user_id
+        )
+
+        # 添加到会话并提交
+        db.add(new_duty_data)
+        db.commit()
+        db.refresh(new_duty_data)
+        user_list = []
+        for user_info in user_data:
+            user_list.appent( DutyPersonnelArrangement(
+                duty_id=new_duty_data.id,
+                position_id=user_info['position_id'],
+                personnel_id=user_info['personnel_id'],
+                create_by=user_id
+            ))
+        db.add_all(user_list)
+        db.commit()
+        # 构建返回结果
+        result = {
+            "code": 200,
+            "msg": "操作成功",
+            "data": None
+        }
+        return result
+    except Exception as e:
+        # 处理异常
+        traceback.print_exc()
+        return JSONResponse(status_code=404, content={
+            'code': 404,
+            'msg': str(e)
+        })
+
+
+@router.put("/update")
+async def updata_dict_type(
+    db: Session = Depends(get_db),
+    body = Depends(remove_xss_json),
+    user_id = Depends(valid_access_token)
+):
+    try:
+        # 从请求数据创建一个新的 SysDictType 实例
+        query = db.query(DutySchedule)
+        query = query.filter(DutySchedule.id == body['id'])
+        query = query.filter(DutySchedule.del_flag != '2')
+
+        # query = db.query(SysDictData).filter(SysDictData.dict_code == form_data.dictCode)
+        # query = db.query(SysDictData).filter(SysDictData.del_flag != '2')
+        duty_data = query.first()
+
+        old_user_list = duty_id_get_user_id(db,duty_data.id)
+        for info in old_user_list:
+            info.del_flag = '2'
+        db.commit()
+
+        user_data = body['user_data']
+        if len(user_data)==0:
+            return JSONResponse(status_code=404, content={
+                'errcode': 404,
+                'errmsg': '值班人员不能为空'
+            })
+        user_list = []
+        for user_info in user_data:
+            user_list.appent(DutyPersonnelArrangement(
+                duty_id=duty_data.id,
+                position_id=user_info['position_id'],
+                personnel_id=user_info['personnel_id'],
+                create_by=user_id
+            ))
+        db.add_all(user_list)
+
+
+        if not dutyn_data:
+            return JSONResponse(status_code=404, content={
+                'errcode': 404,
+                'errmsg': '值班不存在'
+            })
+        duty_data.start_time=body['start_time']
+        duty_data.end_time = body['end_time']
+        duty_data.duty_date = body['duty_date']
+        duty_data.shift_type=body['shift_type']
+        duty_data.duty_unit = body['duty_unit']
+        duty_data.duty_type = body['duty_type']
+        duty_data.update_by = user_id
+        # 添加到数据库会话并提交
+        db.commit()
+        # db.refresh(new_dict_type)  # 可选,如果需要刷新实例状态
+
+        # 构建并返回响应
+        return {
+            "code": 200,
+            "msg": "操作成功",
+            "data": None  # 根据你的响应示例,data 为 null
+        }
+    except Exception as e:
+        # 处理异常
+        traceback.print_exc()
+        return JSONResponse(status_code=404, content={
+            'code': 404,
+            'msg': str(e)
+        })
 
 
 
@@ -295,7 +339,7 @@ async def delete_dict_data(
         if not position_data:
             return JSONResponse(status_code=404, content={
                 'code': 404,
-                'msg': '值班岗位不存在'
+                'msg': '值班不存在'
             })
         position_data.del_flag = '2'
         # 删除实例