国产偷窥熟女精品视频大全,国产成人精品av,国产亚洲精品久久久久5区,国产精品欧美一区二区三区,,国产成人亚洲精品无码av大片

OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))

一、項(xiàng)目運(yùn)行

環(huán)境配置:

Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

項(xiàng)目技術(shù):

JSP Spring SpringMVC MyBatis html css JavaScript JQuery Ajax layui maven等等

OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))

用戶管理控制層:

/** * @author yy */ @Controller@RequestMapping("/user")public class UserController extends BaseController{ private String prefix = "system/user/"; @Autowired IUserService iUserService; @Autowired IRoleService iRoleService; @Autowired IDeptService iDeptService; @Autowired IPositionService iPositionService; @Autowired private SysPasswordService passwordService; /** * * @描述 跳轉(zhuǎn)到用戶頁(yè)面 * * @date 2018/9/16 10:54 */ @RequestMapping("/tolist") @RequiresPermissions("user:list") public String toUserList() { return prefix "user"; } /** * @描述 用戶數(shù)據(jù) * @date 2018/9/15 12:30 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo list(User user) { startPage(); List<User> users = iUserService.selectByUser(user); return getDataTable(users); } /** * 編輯用戶 system/user/edit/20180914-1 */ @RequiresPermissions("user:update") @RequestMapping("/edit/{userId}") public String edit(@PathVariable("userId") String userId, Model model) { // 個(gè)人信息 User user = iUserService.selectByPrimaryKey(userId); Map<String, Object> role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); model.addAttribute("user", user); return prefix "edit"; } /** * * @描述 保存用戶 * * @date 2018/9/15 18:53 */ @PostMapping("/editSave") @RequiresPermissions("user:update") @Operlog(modal = "用戶管理", descr = "修改用戶信息") @ResponseBody public AjaxResult save(User user) { if (StringUtils.isNotNull(user.getUid()) && User.isBoss(user.getUid())) { return error("不允許修改管理員用戶"); } if(user.getPwd()!=null){ user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); } return result(iUserService.updateByPrimaryKeySelective(user)); } /** * @描述 添加用戶頁(yè)面 * @date 2018/9/15 18:46 */ @RequestMapping("/toAdd") @RequiresPermissions("user:add") public String toaddUser(Model model) { Map<String, Object> role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); return prefix "add"; } /** * * @描述 添加用戶 * * @date 2018/9/15 20:40 */ @RequestMapping("/addSave") @RequiresPermissions("user:add") @Operlog(modal = "用戶管理", descr = "添加用戶") @ResponseBody public AjaxResult addUser(User user) { user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setAvatar(CsEnum.avatar.USER_AVATAR.getValue()); user.setCreateTime(new Date()); return result(iUserService.insertSelective(user)); } /** * * @描述 批量刪除 * * @date 2018/9/16 9:31 */ @RequestMapping("/del") @RequiresPermissions("user:del") @Operlog(modal = "用戶模塊", descr = "刪除用戶") @ResponseBody public AjaxResult delByUserIds(String[] ids) { try { int i = iUserService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 編輯密碼修改頁(yè)面 * * @date 2018/9/16 10:25 */ @RequestMapping("/resetPwd/{userId}") @RequiresPermissions("user:update") public String editPwd(@PathVariable("userId") String id, Model model) { model.addAttribute("uid", id); return prefix "resetPwd"; } /** * * @描述 密碼修改 * * @date 2018/9/16 10:42 */ @RequestMapping("/resetPwd") @RequiresPermissions("user:update") @Operlog(modal = "用戶模塊", descr = "修改密碼") @ResponseBody public AjaxResult resetPwd(User user) { return result(iUserService.resrtPwd(user)); } /** * 校驗(yàn)手機(jī)號(hào)碼 */ @PostMapping("/checkPhoneUnique") @ResponseBody public String checkPhoneUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkPhoneUnique(user); } return uniqueFlag; } /** * 校驗(yàn)email郵箱 */ @PostMapping("/checkEmailUnique") @ResponseBody public String checkEmailUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkEmailUnique(user); } return uniqueFlag; } /** * * @描述: 校驗(yàn)登錄名唯一性 * * @params: * @return: * @date: 2018/10/2 17:06 */ @PostMapping("/checkLoginNameUnique") @ResponseBody public String checkLoginNameUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkLoginNameUnique(user); } return uniqueFlag; } public Map<String, Object> getRole_Post_Dept() { Map<String, Object> map = new HashMap<>();// 角色 List<Role> roles = iRoleService.selectRoleList(new Role());// 部門(mén)信息 List<Dept> depts = iDeptService.selectDeptList(new Dept());// 崗位 List<Position> positions = iPositionService.selectPositionList(new Position()); map.put("role", roles); map.put("dept", depts); map.put("position", positions); return map; } /** * 用戶個(gè)人信息查看頁(yè)面 */ @RequestMapping("/myMsg") public String ToMyMsg(Model model, HttpServletRequest request) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); model.addAttribute("loginIp", HttpHeaderUtil.getIpAddr(request)); return prefix "profile/msg"; } /** * 密碼修改頁(yè)面 */ @RequestMapping("/resetMyPwd") public String toResetPwd(Model model) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); return prefix "profile/resetPwd"; } /** * 密碼修改保存 */ @RequestMapping("/updateMyPwdSave") @ResponseBody @RequiresPermissions("user:update") @Operlog(modal = "個(gè)人信息", descr = "修改密碼") public AjaxResult updateMyPwdSave(String password) { User user = new User(); user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setUid(getUserId()); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { //更新shiro中的信息 ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); return success(); } return error(); } /** * 編輯用戶頭像修改 */ @RequestMapping("/updateAvatar") public String toupdateAvatar(Model model) { model.addAttribute("user", getUser()); return prefix "profile/avatar"; } /** * 修改保存用戶頭像 */ @RequestMapping("/updateAvatarSave") @RequiresPermissions("user:update") @Operlog(modal = "個(gè)人信息", descr = "修改頭像") @ResponseBody public AjaxResult toupdateAvatar(MultipartFile file) { try { String imgPath = UploadFile.uploadUserImg(file); if (StringUtils.isEmpty(imgPath)) { return error("圖片上傳失敗,稍后再試!"); } User user = new User(); user.setUid(getUserId()); user.setAvatar(imgPath); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); } return result(i); } catch (IOException e) { return error(); } catch (FileSizeException e) { //文件過(guò)大 return error(e.getMsg()); } catch (FileNameLengthException e) { //文件名字超長(zhǎng) return error(e.getMsg()); } } /** * 校驗(yàn)密碼和原來(lái)密碼是否相同 */ @RequestMapping("/checkPassword") @ResponseBody public boolean checkPassword(String password) { //加密后與數(shù)據(jù)庫(kù)密碼比較 User user = getUser(); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); String oldPassword = md5.toHex(); String pwd = getPwd(); if (pwd.equals(oldPassword)) { return true; } return false; } }

部門(mén)管理控制層:

/** * @author yy */@Controller@RequestMapping("/dept")public class DeptController extends BaseController{ private String prefix = "system/dept/"; @Autowired IDeptService iDeptService; @Autowired IUserService iUserService; /** * * @描述 頁(yè)面跳轉(zhuǎn)到部門(mén) * * @date 2018/9/16 10:59 */ @RequestMapping("/tolist") @RequiresPermissions("dept:list") public String tolist() { return prefix "dept"; } /** * * @描述 ajax請(qǐng)求的所有部門(mén) * * @date 2018/9/16 10:48 */ @RequestMapping("/ajaxlist") @ResponseBody public List<Dept> list(Dept dept) { List<Dept> depts = iDeptService.selectDeptList(dept); return depts; } /** * * @描述 部門(mén)列表頁(yè) * * @date 2018/9/16 10:52 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo listPag(Dept dept) { //開(kāi)啟分頁(yè) startPage(); List<Dept> depts = iDeptService.selectDeptList(dept); return getDataTable(depts); } /** * * @描述 新增頁(yè)面 * * @date 2018/9/16 11:37 */ @RequiresPermissions("dept:add") @RequestMapping("/toAdd") public String toAdd(Model model) { List<User> users = iUserService.selectByUser(new User()); model.addAttribute("users", users); return prefix "add"; } /** * * @描述: 查詢所有部門(mén)下的所有用戶 用戶歸類 樹(shù)狀數(shù)據(jù) * * @date: 2018/9/27 11:25 */ @RequestMapping("/getDeptAndUserTreeData") @ResponseBody public List<Object> DeptAndUserTreeData() { List<Dept> depts = iDeptService.selectDeptAndUser(); List<User> users=new ArrayList<>(); LinkedList<Object> deptList = new LinkedList<>(); for (Dept dept : depts) { Map<String, Object> deptMap = new HashMap(); deptMap.put("name", dept.getDeptName()); deptMap.put("id", null); users = dept.getUsers(); LinkedList<Object> userlist = new LinkedList<>(); for (User user : users) { Map<String, Object> userMap = new HashMap(); userMap.put("name",user.getName()); userMap.put("id",user.getUid()); userMap.put("icon","/img/timg.jpg"); userlist.add(userMap); } deptMap.put("children",userlist); deptList.add(deptMap); } return deptList; } /** * * @描述 批量刪除 * * @date 2018/9/16 11:53 */ @RequestMapping("/del") @RequiresPermissions("dept:del") @ResponseBody @Operlog(modal = "部門(mén)管理",descr = "刪除部門(mén)") public AjaxResult del(String[] ids) { try { iDeptService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 執(zhí)行保存操作 * * @date 2018/9/16 11:54 */ @RequestMapping("/addSave") @Operlog(modal = "部門(mén)管理",descr = "添加部門(mén)") @RequiresPermissions("dept:add") @ResponseBody public AjaxResult addDept(Dept dept) { dept.setCreateTime(new Date()); return result(iDeptService.insertSelective(dept)); } /** * * @描述 編輯修改頁(yè)面 * * @date 2018/9/16 14:06 */ @RequestMapping("/edit/{id}") @RequiresPermissions("dept:update") public String edit(@PathVariable("id") String id, Model model) { Dept dept = iDeptService.selectByPrimaryKey(id); List<User> users = iUserService.selectByUser(new User()); model.addAttribute("users", users); model.addAttribute("Dept", dept); return prefix "edit"; } /** * * @描述 修改保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editSave") @RequiresPermissions("dept:update") @Operlog(modal = "部門(mén)管理",descr = "修改信息") @ResponseBody public AjaxResult save(Dept dept) { int i = 0; try { i = iDeptService.updateByPrimaryKeySelective(dept); } catch (Exception e) { return error(e.getMessage()); } return result(i); } /** * 校驗(yàn)部門(mén)名稱 */ @PostMapping("/checkDeptNameUnique") @ResponseBody public String checkDeptNameUnique(Dept dept) { String uniqueFlag = "0"; if (dept != null) { uniqueFlag = iDeptService.checkDeptNameUnique(dept); } return uniqueFlag; }}

角色管理控制層:

/** * @author yy */@Controller@RequestMapping("/role")public class RoleController extends BaseController{ private String prefix = "system/role/"; @Autowired IUserService iUserService; @Autowired IRoleService iRoleService; @Autowired IPermissionService iPermissionService; /** * * @描述 頁(yè)面跳轉(zhuǎn) * * @date 2018/9/16 10:59 */ @RequestMapping("/tolist") @RequiresPermissions("role:list") public String tolist() { return prefix "role"; } /** * * @描述 ajax請(qǐng)求所有 * * @date 2018/9/16 10:48 */ @RequestMapping("/ajaxlist") @ResponseBody public List<Role> list(Role role) { List<Role> roles = iRoleService.selectRoleList(role); return roles; } /** * * @描述 列表 * * @date 2018/9/16 10:52 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo listPag(Role role) { //開(kāi)啟分頁(yè) startPage(); List<Role> roles = iRoleService.selectRoleList(role); return getDataTable(roles); } /** * * @描述 新增頁(yè)面 * * @date 2018/9/16 11:37 */ @RequestMapping("/toAdd") @RequiresPermissions("role:add") public String toAdd(Model model) { return prefix "add"; } /** * * @描述 批量刪除 * * @date 2018/9/16 11:53 */ @RequestMapping("/del") @RequiresPermissions("role:del") @Operlog(modal = "角色管理",descr = "刪除角色") @ResponseBody public AjaxResult del(Integer[] ids) { try { iRoleService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 添加保存 * * @date 2018/9/16 11:54 */ @RequestMapping("/addSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "添加角色") @ResponseBody public AjaxResult addRole(Role role, Integer[] ids) { role.setCreateTime(new Date()); int insert = 0; try { if (StringUtils.isEmpty(ids)) { ids = new Integer[0]; } insert = iRoleService.insert(role, ids); } catch (Exception e) { return error(e.getMessage()); } //清空緩存 ShiroUtils.clearCachedAuthorizationInfo(); return result(insert); } /** * * @描述: 根據(jù)ID 獲取u他的所有權(quán)限 做回顯 * * @params: roleId 角色I(xiàn)d * @return: * @date: 2018/9/27 14:04 */ @RequestMapping("/selectById/{roleId}") @ResponseBody public Role selectById(@PathVariable("roleId") Integer roleId) { Role role = iRoleService.selectByPrimaryKey(roleId); return role; } /** * * @描述 編輯修改頁(yè)面 * * @date 2018/9/16 14:06 */ @RequestMapping("/edit/{id}") @RequiresPermissions("role:update") public String edit(@PathVariable("id") Integer id, Model model) { Role role = iRoleService.selectByPrimaryKey(id); model.addAttribute("Role", role); return prefix "edit"; } /** * * @描述 編輯修改權(quán)限頁(yè)面 * * @date 2018/9/16 14:06 */ @RequestMapping("/editPower/{id}") @RequiresPermissions("role:update") public String editPower(@PathVariable("id") Integer id, Model model) { Role role = iRoleService.selectByPrimaryKey(id); model.addAttribute("Role", role); return prefix "editPower"; } /** * * @描述 修改角色信息保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "修改角色信息") @ResponseBody public AjaxResult save(Role role) { int i = 0; try { i = iRoleService.updateByPrimaryKeySelective(role); } catch (Exception e) { return error(e.getMessage()); } return result(i); } /** * * @描述 修改角色權(quán)限信息保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editPowerSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "修改角色權(quán)限") @ResponseBody public AjaxResult editPowerSave(Role role, Integer[] ids) { int i = 0; try { if (StringUtils.isEmpty(ids)) { ids = new Integer[0]; } i = iRoleService.updateByPrimaryKeyPowerSelective(role, ids); } catch (Exception e) { return error(e.getMessage()); } //清空緩存 ShiroUtils.clearCachedAuthorizationInfo(); //如果用戶正在修改的角色id 是當(dāng)前用戶的角色id 則刷新 subject的User信息 if (role.getRoleId().equals(getRoleId())) { ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); } return result(i); } /** * 校驗(yàn)名稱唯一 */ @PostMapping("/checkRoleNameUnique") @ResponseBody public String checkDeptNameUnique(Role role) { String uniqueFlag = "0"; if (role != null) { uniqueFlag = iRoleService.checkRoleNameUnique(role); } return uniqueFlag; }}

項(xiàng)目源碼及開(kāi)發(fā)文檔

由于限制,這里不能直接放鏈接,需要項(xiàng)目源碼與開(kāi)發(fā)文檔的同學(xué)轉(zhuǎn)發(fā)本文 關(guān)注 私信【0221】即可獲取

OA自動(dòng)化辦公管理系統(tǒng)(java+Layui+SSM+Maven+mysql+JSP+html)(OA自動(dòng)化辦公系統(tǒng))

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2022年6月20日 上午9:44
下一篇 2022年6月20日 上午9:56

相關(guān)推薦

  • 餐飲小程序怎么做?主要步驟如下(餐飲小程序制作)

    餐飲小程序主要用于進(jìn)店點(diǎn)餐,是近兩年非?;鸨男〕绦?,不僅方便顧客點(diǎn)餐,而且提高了餐廳工作人員的工作效率。因此,餐飲市場(chǎng)的應(yīng)用也越來(lái)越普及,那么如何做餐飲小程序,步驟是什么呢? 餐…

    科研百科 2023年4月29日
    254
  • 深交所警告4家機(jī)構(gòu):內(nèi)控缺陷致新股報(bào)價(jià)失誤,限期整改?。ㄉ罱凰鶅?nèi)控指引)

    4月7日,深交所針對(duì)4家參與新股報(bào)價(jià)的機(jī)構(gòu),因違規(guī)行為采取書(shū)面警示措施,要求限期整改。涉及的機(jī)構(gòu)包括廣東天創(chuàng)私募證券投資基金管理有限公司、嘉實(shí)資本管理有限公司、北京卓識(shí)私募基金管理…

    科研百科 2024年5月11日
    50
  • 最近衛(wèi)星科研項(xiàng)目

    最近衛(wèi)星科研項(xiàng)目 隨著科技的不斷進(jìn)步,衛(wèi)星科研項(xiàng)目也在不斷發(fā)展。最近,一個(gè)名為“天鏈”的衛(wèi)星科研項(xiàng)目正在順利進(jìn)行。 “天鏈”是一個(gè)由清華大學(xué)教授唐杰率領(lǐng)的科研團(tuán)隊(duì)正在研究的項(xiàng)目。該…

    科研百科 2025年2月10日
    8
  • 績(jī)效管理的軟件

    績(jī)效管理的軟件 績(jī)效管理是現(xiàn)代企業(yè)的重要管理工具之一,可以幫助企業(yè)更好地評(píng)估員工的表現(xiàn),并為員工提供有針對(duì)性的培訓(xùn)和激勵(lì)計(jì)劃?,F(xiàn)在,市場(chǎng)上有許多績(jī)效管理的軟件可供選擇,這些軟件可以…

    科研百科 2024年10月3日
    2
  • java小項(xiàng)目倉(cāng)庫(kù)管理系統(tǒng)

    Java小項(xiàng)目倉(cāng)庫(kù)管理系統(tǒng) 隨著現(xiàn)代商業(yè)的快速發(fā)展,企業(yè)的需求變得越來(lái)越多樣化,尤其是在倉(cāng)庫(kù)管理方面。因此,開(kāi)發(fā)一款高效的倉(cāng)庫(kù)管理系統(tǒng)變得非常重要。本文將介紹一款基于Java的小項(xiàng)…

    科研百科 2024年12月30日
    3
  • 肇慶科研項(xiàng)目

    肇慶科研項(xiàng)目 肇慶是中國(guó)廣東省的一個(gè)地級(jí)市,有著悠久的歷史和豐富的文化底蘊(yùn)。近年來(lái),隨著經(jīng)濟(jì)的發(fā)展和旅游業(yè)的的興起,肇慶科研項(xiàng)目得到了越來(lái)越多的關(guān)注和投入。 肇慶科研項(xiàng)目涵蓋了多個(gè)…

    科研百科 2025年2月20日
    2
  • poct管理軟件注冊(cè)(poct管理軟件)

    PoCT管理軟件介紹 隨著現(xiàn)代實(shí)驗(yàn)室管理的日益復(fù)雜,PoCT(實(shí)驗(yàn)操作與控制)管理軟件已經(jīng)成為了許多實(shí)驗(yàn)室中不可或缺的一部分。PoCT管理軟件可以幫助實(shí)驗(yàn)室管理人員更好地管理實(shí)驗(yàn)操…

    科研百科 2024年6月2日
    60
  • 富士康分管理,技術(shù),專案

    富士康是中國(guó)著名的制造業(yè)公司之一,也是全球最大的制造業(yè)公司之一。富士康的業(yè)務(wù)范圍涵蓋了電子產(chǎn)品制造、航空電子設(shè)備制造、汽車電子制造等多個(gè)領(lǐng)域。然而,富士康在制造業(yè)中也有著很高的聲譽(yù)…

    科研百科 2024年11月8日
    9
  • 項(xiàng)目管理類證書(shū)有哪些

    項(xiàng)目管理類證書(shū)有哪些 項(xiàng)目管理是一個(gè)非常重要的職業(yè)領(lǐng)域,它涉及到組織項(xiàng)目的過(guò)程,包括計(jì)劃,執(zhí)行,控制和收尾。因此,許多機(jī)構(gòu)和公司都提供了各種各樣的項(xiàng)目管理類證書(shū),以幫助學(xué)生或員工提…

    科研百科 2024年9月27日
    3
  • 科研項(xiàng)目的組織管理措施

    科研項(xiàng)目的組織管理措施 科研項(xiàng)目是推動(dòng)科學(xué)技術(shù)發(fā)展的重要力量,而有效的組織管理措施是確保項(xiàng)目順利進(jìn)行的關(guān)鍵。以下是一些科研項(xiàng)目組織管理措施的建議: 1. 確定項(xiàng)目目標(biāo)和任務(wù)書(shū):在開(kāi)…

    科研百科 2024年10月2日
    39