调整project、part数据结构，增加utils，统一错误返回