def get(self, request, *args, **kwargs): user_id = request.user.id project_id = request.query_params.get('project_id', None) tasks = Task.objects.filter(project_id=project_id, sender_id=user_id) if len(tasks) > 0: return MykeyResponse(status=status.HTTP_200_OK, data=1, msg='请求成功') return MykeyResponse(status=status.HTTP_200_OK, data=0, msg='请求成功')
def post(self, request, format=None): try: # 项目标识 project_id = request.data.get('project_id', None) # 项目负责人百分比 project_receiver_percentage = request.data.get( 'project_receiver_percentage', None) # 商务人员百分比 project_sender_percentage = request.data.get( 'project_sender_percentage', None) # 项目总积分 project_points = request.data.get('project_points', None) self.create_project_receiver_points(project_id, project_points, project_receiver_percentage) self.create_project_sender_points(project_id, project_points, project_sender_percentage) self.create_task_receiver_points(project_id, project_points, project_receiver_percentage, project_sender_percentage) self.create_projectpointsex(project_id, project_points, project_receiver_percentage, project_sender_percentage) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request): try: # 获取用户上传的文件,保存到服务器,再添加到数据库 files = request.FILES.getlist('file', []) # 判断文件列表是否存在文件 if len(files) > 0: # 判断上传路径是否存在,不存在则创建 if not os.path.exists(settings.MEDIA_ROOT): os.makedirs(settings.MEDIA_ROOT) file = files[0] # 获取文件后缀名 extension = os.path.splitext(file.name)[1] # 通过uuid重命名上传的文件 filename = '{}{}'.format(uuid.uuid4(), extension) # 构建文件路径 file_path = '{}{}'.format(settings.MEDIA_URL, filename) file_path_server = '{}/{}'.format(settings.MEDIA_ROOT, filename) # 保存文件 with open(file_path_server, 'wb') as f: for c in file.chunks(): f.write(c) f.close() data = {'link': file_path} return Response(data=data) return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败')
def post(self, request, format=None): try: project_id = request.data.get('project_id', None) if project_id is not None: self.update_project(project_id) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: project_ids = request.data.get('project_ids', []) self.update_project(project_ids) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request): try: # 步骤标识 step_id = request.data.get('step_id', None) # 标题 title = request.data.get('title', None) # 进度 progress = request.data.get('progress', None) # 备注 memo = request.data.get('memo', None) # 富文本内容 content = request.data.get('content', None) # 文件 files = request.data.get('files', None) # 增加步骤日志 if step_id is not None and title is not None and progress is not None: # if content or files: step_log = StepLog(step_id=step_id, title=title, progress=progress, memo=memo) step_log.save() if files: for file in files: # 增加文件表记录 step_log_file = Files( steplog=step_log, name=file['name'], path=file['url'], path_thumb_w200=file.get('path_thumb_w200', ''), path_thumb_w900=file.get('path_thumb_w900', '')) step_log_file.save() # 如果存在富文本,则先添加富文本 if content: progresstexts = ProgressTexts(steplog=step_log, content=content) progresstexts.save() # 更新步骤进度 step = Step.objects.get(id=step_id) if step: step.progress = progress # updated step.label = 1 step.save() task_id = step.task_id BusinessPublic.update_progress_by_task_id(task_id) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: # 任务标识 task_id = request.data.get('task_id') self.update_task(task_id) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request): try: user_id = request.user.id # 文件或者富文本标识 step_log_file_id = request.data.get('step_log_file_id', None) type = request.data.get('type', None) title = request.data.get('title', None) memo = request.data.get('memo', None) content = request.data.get('content', None) files = request.data.get('files', None) step_id = request.data.get('step_id', None) # 增加日志 if step_log_file_id is not None and type is not None and title is not None: # if content or files: feedback_log = FeedBackLog(step_log_file_id=step_log_file_id, type=type, title=title, memo=memo, feedbacker_id=user_id) feedback_log.save() if step_id is not None: step = Step.objects.get(id=step_id) # feedback step.label = 2 step.save() task = Task.objects.get(id=step.task_id) # feedback task.label = 2 task.save() if files: for file in files: # 增加文件表记录 feedback_file = FeedBacks( feedbacklog=feedback_log, name=file['name'], path=file['url'], path_thumb_w200=file.get('path_thumb_w200', ''), path_thumb_w900=file.get('path_thumb_w900', '')) feedback_file.save() # 如果存在反馈富文本,则先添加反馈富文本 if content: feedback_log_contents = FeedBackTexts( feedbacklog=feedback_log, content=content) feedback_log_contents.save() except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: project_id = request.data.get('project_id', None) # 项目总积分 project_points = request.data.get('project_points', None) self.update_project(project_id, project_points) self.update_task(project_id) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: # 任务 id 列表 task_ids = request.data.get('selected_task_ids', []) if task_ids and len(task_ids) > 0: for task_id in task_ids: self.update_task(task_id) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def get(self, request, format=None): try: list_project_fee_objects.clear() project_id = request.query_params.get('project_id', None) self.get_projectfee_cost(project_id) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=list_project_fee_objects)
def get(self, request): try: # 获取当前用户 id user_id = request.user.id points = Points.objects.filter(user_id=user_id).first() or {} serializer = PointsSerializer(points) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(serializer.data, status=status.HTTP_200_OK, msg='请求成功')
def get(self, request): try: project_id = request.query_params.get('project_id', None) projectpointsex = ProjectPointsEx.objects.filter( project_id=project_id).first() or {} serializer = ProjectPointsExSerializer(projectpointsex) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(serializer.data, status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: # 项目标识 project_id = request.data.get('project_id') # 验收不通过原因 reason = request.data.get('reason') or '' self.update_project(project_id, reason) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def get(self, request, format=None): try: # 任务标识 task_id = request.query_params.get('task_id') # 获取任务日志 task_logs = self.get_task_logs(task_id) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=task_logs)
def post(self, request, format=None): try: # 任务标识 task_id = request.data.get('task_id', None) # 评级 task_assessment_id = request.data.get('task_assessment_id', None) # 评语 comments = request.data.get('comments', None) self.update_task(task_id, task_assessment_id, comments) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def get(self, request, format=None): try: # 步骤标识 step_id = request.query_params.get('step_id') # 获取步骤日志 step_logs = self.get_step_logs(step_id) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=step_logs)
def post(self, request, format=None): try: project_id = request.data.get('project_id') auditor_id = request.data.get('auditor_id') if project_id is not None and auditor_id is not None: self.update_project(project_id, auditor_id) user_id = request.user.id BusinessPublic.create_message(user_id, auditor_id, menu_id=2, messages='有新的项目需要你的审核,请尽快处理!') except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): try: message_status = request.data.get('status', None) message_ids = request.data.get('msg_ids', []) if message_status and len(message_ids) > 0: for message_id in message_ids: # 更新消息状态为相应的值:未读或已读 self.update_message(message_id, message_status) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request, format=None): name = request.data.get('name', None) project_id = request.data.get('project_id', None) if project_id is not None: cur_project = Project.objects.get(id=project_id) if name == cur_project.name: return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功') if name is not None: try: Project.objects.get(name=name) return MykeyResponse(status=status.HTTP_200_OK, data={'msg': '该项目名已存在,请重新输入'}, msg='请求成功') except Exception as e: return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功') return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功')
def post(self, request): try: # 获取文件名称列表 urls = request.POST.getlist('url') # 判断是否存在文件列表 if len(urls) > 0: # 判断文件径是否存在,存在则删除 for url in urls: if os.path.exists(url): os.remove(url) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功') except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败')
def get(self, request, format=None): try: # 文件标识 file_id = request.query_params.get('file_id', None) # 类型 type = request.query_params.get('type', None) if file_id is not None and type is not None: if type == '1': step_log_file_list = self.one_get_step_log_files(file_id) else: step_log_file_list = self.one_progresstext_objects(file_id) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=step_log_file_list) except Exception as e: msg = e.args if e else '请求失败' return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg=msg)
def get(self, request, format=None): try: # 项目标识 project_id = request.data.get('project_id') if project_id is not None: project = Project.objects.get(id=project_id) if project is not None: tasks = Task.objects.filter(project_id=project_id) if tasks is not None: for task in tasks: if task is not None: files = Files.objects.filter(task_id=task.id) if files is not None: if files.count() == 0: return MykeyResponse( status=status.HTTP_400_BAD_REQUEST, msg=task.name + '的参考文件为空') except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败') return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功')
def post(self, request): try: # 获取项目标识 project_id = request.data.get('project_id', None) # 获取用户上传的文件,保存到服务器,再添加到数据库 files = request.data.get('files', []) for file in files: path = '{}{}'.format(settings.BASE_DIR, file['url']) if os.path.exists(path): datalist = Excel.import_excel_data(project_id, path) os.remove(path) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=datalist) else: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='文件不存在') except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败')
def post(self, request, format=None): name = request.data.get('name', None) project_id = request.data.get('project_id', None) task_id = request.data.get('task_id', None) if task_id is not None: cur_task = Task.objects.get(id=task_id) if name == cur_task.name: return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功') if name is not None and project_id is not None: try: Task.objects.get(name=name, project_id=project_id) return MykeyResponse(status=status.HTTP_200_OK, data={'msg': '该任务名已存在,请重新输入'}, msg='请求成功') except Exception as e: return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功') return MykeyResponse(status=status.HTTP_200_OK, data={}, msg='请求成功')
def post(self, request): try: # 获取用户上传的文件,保存到服务器,再添加到数据库 files = request.FILES.getlist('file') # 判断文件列表是否存在文件 if len(files) > 0: # 遍历用户上传的文件列表 upload_files = [] dict_obj = {} for file in files: # 获取文件后缀名 extension = os.path.splitext(file.name)[1][1:] # 根据文件类型生成相对应的文件夹-时间+类型 path_year = time.strftime('%Y', time.localtime()) path_month = time.strftime('%m', time.localtime()) path_day = time.strftime('%d', time.localtime()) path = '{}/{}/{}/{}/{}/{}'.format(settings.MEDIA_ROOT, 'project', path_year, path_month, path_day, extension) # 判断上传路径是否存在,不存在则创建 if not os.path.exists(path): os.makedirs(path) # 通过 uuid 重命名上传的文件 filename = '{}.{}'.format(uuid.uuid4(), extension) # 构建文件路径 file_path = '{}{}/{}/{}/{}/{}/{}'.format( settings.MEDIA_URL, 'project', path_year, path_month, path_day, extension, filename) file_path_server = '{}/{}/{}/{}/{}/{}/{}'.format( settings.MEDIA_ROOT, 'project', path_year, path_month, path_day, extension, filename) # 如果上传的文件是图片类型,则生成相应尺寸的缩略图 img_formats = ['jpg', 'jpeg', 'png', 'bmp', 'gif'] if extension in img_formats: img = Image.open(file) img_w900 = self.make_thumb(img, 900) img_w900.save(file_path_server + '_w900.' + extension) img_w200 = self.make_thumb(img, 200) img_w200.save(file_path_server + '_w200.' + extension) dict_obj[ "path_thumb_w200"] = file_path + '_w200.' + extension dict_obj[ "path_thumb_w900"] = file_path + '_w900.' + extension # 将上传的文件路径存储到 upload_files 中 # 注意这样要构建相对路径 MEDIA_URL + filename,这里可以保存到数据库 dict_obj["name"] = filename dict_obj["raw_name"] = file.name dict_obj["url"] = file_path upload_files.append(dict_obj) # 保存文件 with open(file_path_server, 'wb') as f: for c in file.chunks(): f.write(c) f.close() data = {'files': upload_files} return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=data) except Exception as e: return MykeyResponse(status=status.HTTP_400_BAD_REQUEST, msg='请求失败')
def get(self, request, *args, **kwargs): user_id = request.user.id projects = Project.objects.filter(sender_id=user_id) if len(projects) > 0: return MykeyResponse(status=status.HTTP_200_OK, data=1, msg='请求成功') return MykeyResponse(status=status.HTTP_200_OK, data=0, msg='请求成功')
def get(self, request, format=None): user_id = request.user.id user_role_list = self.get_user_roles(user_id) users = UserProfile.objects.filter(superior_id=user_id) users = self.filter_user(request, users) sign = True if '项目负责人' in user_role_list: sign = True elif '任务负责人' in user_role_list: sign = False list_objects = [] if sign: for user in users: user_obj = {} user_obj["id"] = user.id user_obj["name"] = user.name list_objects.append(user_obj) else: for user in users: # tasks = Task.objects.filter(receiver_id=user.id, is_active=1, receive_status__lte=3) tasks = Task.objects.filter( ~Q(receive_status=BusinessPublic.GetTaskStatusIdByKey( 'checked')), receiver_id=user.id, is_active=1) if len(tasks) > 0: for task in tasks: if task is not None: dict_obj1 = {} dict_obj1["user_id"] = user.id dict_obj1["name"] = user.name dict_obj1["task_type"] = task.task_type.name dict_obj1["task_progress"] = task.progress dict_obj1["task_name"] = task.name dict_obj1["end_time"] = task.end_time dict_obj1["leftdays"] = ( task.end_time - datetime.datetime.now().date()).days + 1 dict_obj1[ "receive_status"] = task.receive_status.text list_objects.append(dict_obj1) else: dict_obj2 = {} dict_obj2["user_id"] = user.id dict_obj2["name"] = user.name dict_obj2["task_type"] = '' dict_obj2["task_progress"] = '' dict_obj2["task_name"] = '' dict_obj2["end_time"] = '' dict_obj2["leftdays"] = '' dict_obj2["receive_status"] = '' list_objects.append(dict_obj2) return MykeyResponse(status=status.HTTP_200_OK, msg='请求成功', data=list_objects)