├── src └── main │ ├── resources │ ├── static │ │ ├── index.js │ │ ├── images │ │ │ ├── logo.png │ │ │ └── favicon.ico │ │ ├── assets │ │ │ ├── images │ │ │ │ ├── head.png │ │ │ │ ├── logo.png │ │ │ │ └── favicon.ico │ │ │ ├── libs │ │ │ │ ├── layui │ │ │ │ │ ├── font │ │ │ │ │ │ ├── iconfont.eot │ │ │ │ │ │ ├── iconfont.ttf │ │ │ │ │ │ └── iconfont.woff │ │ │ │ │ ├── images │ │ │ │ │ │ └── face │ │ │ │ │ │ │ ├── 0.gif │ │ │ │ │ │ │ ├── 1.gif │ │ │ │ │ │ │ ├── 10.gif │ │ │ │ │ │ │ ├── 11.gif │ │ │ │ │ │ │ ├── 12.gif │ │ │ │ │ │ │ ├── 13.gif │ │ │ │ │ │ │ ├── 14.gif │ │ │ │ │ │ │ ├── 15.gif │ │ │ │ │ │ │ ├── 16.gif │ │ │ │ │ │ │ ├── 17.gif │ │ │ │ │ │ │ ├── 18.gif │ │ │ │ │ │ │ ├── 19.gif │ │ │ │ │ │ │ ├── 2.gif │ │ │ │ │ │ │ ├── 20.gif │ │ │ │ │ │ │ ├── 21.gif │ │ │ │ │ │ │ ├── 22.gif │ │ │ │ │ │ │ ├── 23.gif │ │ │ │ │ │ │ ├── 24.gif │ │ │ │ │ │ │ ├── 25.gif │ │ │ │ │ │ │ ├── 26.gif │ │ │ │ │ │ │ ├── 27.gif │ │ │ │ │ │ │ ├── 28.gif │ │ │ │ │ │ │ ├── 29.gif │ │ │ │ │ │ │ ├── 3.gif │ │ │ │ │ │ │ ├── 30.gif │ │ │ │ │ │ │ ├── 31.gif │ │ │ │ │ │ │ ├── 32.gif │ │ │ │ │ │ │ ├── 33.gif │ │ │ │ │ │ │ ├── 34.gif │ │ │ │ │ │ │ ├── 35.gif │ │ │ │ │ │ │ ├── 36.gif │ │ │ │ │ │ │ ├── 37.gif │ │ │ │ │ │ │ ├── 38.gif │ │ │ │ │ │ │ ├── 39.gif │ │ │ │ │ │ │ ├── 4.gif │ │ │ │ │ │ │ ├── 40.gif │ │ │ │ │ │ │ ├── 41.gif │ │ │ │ │ │ │ ├── 42.gif │ │ │ │ │ │ │ ├── 43.gif │ │ │ │ │ │ │ ├── 44.gif │ │ │ │ │ │ │ ├── 45.gif │ │ │ │ │ │ │ ├── 46.gif │ │ │ │ │ │ │ ├── 47.gif │ │ │ │ │ │ │ ├── 48.gif │ │ │ │ │ │ │ ├── 49.gif │ │ │ │ │ │ │ ├── 5.gif │ │ │ │ │ │ │ ├── 50.gif │ │ │ │ │ │ │ ├── 51.gif │ │ │ │ │ │ │ ├── 52.gif │ │ │ │ │ │ │ ├── 53.gif │ │ │ │ │ │ │ ├── 54.gif │ │ │ │ │ │ │ ├── 55.gif │ │ │ │ │ │ │ ├── 56.gif │ │ │ │ │ │ │ ├── 57.gif │ │ │ │ │ │ │ ├── 58.gif │ │ │ │ │ │ │ ├── 59.gif │ │ │ │ │ │ │ ├── 6.gif │ │ │ │ │ │ │ ├── 60.gif │ │ │ │ │ │ │ ├── 61.gif │ │ │ │ │ │ │ ├── 62.gif │ │ │ │ │ │ │ ├── 63.gif │ │ │ │ │ │ │ ├── 64.gif │ │ │ │ │ │ │ ├── 65.gif │ │ │ │ │ │ │ ├── 66.gif │ │ │ │ │ │ │ ├── 67.gif │ │ │ │ │ │ │ ├── 68.gif │ │ │ │ │ │ │ ├── 69.gif │ │ │ │ │ │ │ ├── 7.gif │ │ │ │ │ │ │ ├── 70.gif │ │ │ │ │ │ │ ├── 71.gif │ │ │ │ │ │ │ ├── 8.gif │ │ │ │ │ │ │ └── 9.gif │ │ │ │ │ ├── css │ │ │ │ │ │ └── modules │ │ │ │ │ │ │ ├── layer │ │ │ │ │ │ │ └── default │ │ │ │ │ │ │ │ ├── icon.png │ │ │ │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ │ │ │ └── loading-2.gif │ │ │ │ │ │ │ └── code.css │ │ │ │ │ └── lay │ │ │ │ │ │ └── modules │ │ │ │ │ │ ├── code.js │ │ │ │ │ │ └── laytpl.js │ │ │ │ └── tagsinput │ │ │ │ │ └── jquery.tagsinput-revisited.min.css │ │ │ ├── module │ │ │ │ ├── uploadcustom │ │ │ │ │ └── global.js │ │ │ │ └── treetable-lay │ │ │ │ │ └── treetable.css │ │ │ └── common.js │ │ ├── webuploader │ │ │ ├── Uploader.swf │ │ │ └── webuploader.css │ │ ├── layui_ext │ │ │ └── dtree │ │ │ │ └── font │ │ │ │ ├── dtreefont.eot │ │ │ │ ├── dtreefont.ttf │ │ │ │ └── dtreefont.woff │ │ ├── css │ │ │ └── login.css │ │ ├── fullcalendar │ │ │ ├── bootstrap │ │ │ │ ├── main.min.css │ │ │ │ └── main.css │ │ │ ├── core │ │ │ │ └── locales │ │ │ │ │ ├── en-au.js │ │ │ │ │ ├── en-gb.js │ │ │ │ │ ├── en-nz.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── zh-tw.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── fr-ca.js │ │ │ │ │ ├── pt-br.js │ │ │ │ │ ├── ka.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── nn.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── sl.js │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── es-us.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── lb.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── af.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── ar-dz.js │ │ │ │ │ ├── ar-kw.js │ │ │ │ │ ├── ar-ly.js │ │ │ │ │ ├── ar-ma.js │ │ │ │ │ ├── ar-sa.js │ │ │ │ │ ├── ar-tn.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── kk.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── bs.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── sq.js │ │ │ │ │ ├── fr-ch.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── sr-cyrl.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── ms.js │ │ │ │ │ ├── de.js │ │ │ │ │ └── zh-cn.js │ │ │ ├── daygrid │ │ │ │ └── main.min.css │ │ │ ├── list │ │ │ │ └── main.min.css │ │ │ └── moment │ │ │ │ └── main.min.js │ │ └── plugins │ │ │ └── frame │ │ │ └── js │ │ │ └── fsButtonCommon.js │ ├── application.properties │ ├── simhei.ttf │ ├── image │ │ └── catalogue.png │ ├── application-dev.properties │ ├── fdfs_client.conf │ ├── templates │ │ ├── upload │ │ │ ├── uploadstatus.ftl │ │ │ ├── upload.ftl │ │ │ ├── uploadphoto.ftl │ │ │ └── uploadvideo.ftl │ │ └── home │ │ │ └── index.ftl │ ├── rebel.xml │ ├── mapper │ │ ├── rbac │ │ │ ├── ErpRoleMenuMapper.xml │ │ │ ├── ErpRoleUserMapper.xml │ │ │ └── ErpRoleMapper.xml │ │ ├── importutil │ │ │ ├── ErpStudentMapper.xml │ │ │ ├── ErpSFamilyMemberMapper.xml │ │ │ └── ErpStudentExcelMapper.xml │ │ └── calendar │ │ │ ├── ErpRoomMapper.xml │ │ │ └── ErpCalendarTaskMapper.xml │ └── logback.xml │ └── java │ ├── template │ ├── serviceTemplate.vm │ ├── mapperTemplate.vm │ ├── serviceImplTemplate.vm │ ├── xmlTemplate.vm │ └── beanTemplate.vm │ └── com │ └── chenyanwu │ └── erp │ └── erpframework │ ├── annotation │ └── Log.java │ ├── service │ ├── calendar │ │ ├── ErpRoomService.java │ │ └── ErpCalendarTaskService.java │ ├── importutil │ │ ├── ErpStudentExcelService.java │ │ ├── ImportTemplate.java │ │ ├── ErpSFamilyMemberService.java │ │ └── ErpStudentService.java │ ├── rbac │ │ ├── ErpRoleService.java │ │ ├── ErpRoleMenuService.java │ │ ├── ErpRoleUserService.java │ │ ├── ErpMenuService.java │ │ └── ErpUserService.java │ ├── dtree │ │ └── DtreeService.java │ ├── log │ │ └── ErpLogService.java │ ├── BaseService.java │ └── impl │ │ ├── calendar │ │ └── ErpRoomServiceImpl.java │ │ ├── importutil │ │ ├── ErpStudentExcelServiceImpl.java │ │ ├── ErpSFamilyMemberServiceImpl.java │ │ └── ImportTask.java │ │ ├── rbac │ │ ├── ErpRoleMenuServiceImpl.java │ │ ├── ErpUserServiceImpl.java │ │ ├── ErpRoleUserServiceImpl.java │ │ ├── ErpRoleServiceImpl.java │ │ └── ErpMenuServiceImpl.java │ │ ├── upload │ │ └── WaterMarkImpl.java │ │ ├── log │ │ └── ErpLogServiceImpl.java │ │ └── BaseServiceImpl.java │ ├── controller │ ├── HomeController.java │ └── calendar │ │ └── CalendarController.java │ ├── dao │ ├── rbac │ │ ├── ErpRoleMapper.java │ │ ├── ErpRoleMenuMapper.java │ │ ├── ErpRoleUserMapper.java │ │ ├── ErpUserMapper.java │ │ └── ErpMenuMapper.java │ ├── log │ │ └── ErpLogMapper.java │ ├── calendar │ │ ├── ErpRoomMapper.java │ │ └── ErpCalendarTaskMapper.java │ └── importutil │ │ ├── ErpStudentMapper.java │ │ ├── ErpSFamilyMemberMapper.java │ │ └── ErpStudentExcelMapper.java │ ├── exception │ ├── ExceptionEnum.java │ ├── BusinessException.java │ └── MsgContentStruct.java │ ├── ErpFrameworkApplication.java │ ├── entity │ ├── dtree │ │ ├── Status.java │ │ ├── CheckArr.java │ │ └── DtreeResponse.java │ ├── calendar │ │ └── ErpRoom.java │ ├── importutil │ │ └── StudentExcelImport.java │ ├── vo │ │ ├── CalendarTaskVo.java │ │ └── ShowMenu.java │ ├── rbac │ │ ├── ErpRoleMenu.java │ │ ├── ErpRoleUser.java │ │ └── ErpRole.java │ ├── FastDFSFile.java │ └── MySysUser.java │ ├── common │ ├── Constants.java │ ├── util │ │ ├── JsonUtil.java │ │ ├── StringUtils.java │ │ └── DateConverter.java │ ├── PageResultBean.java │ └── codegenerator │ │ ├── model │ │ └── DictItem.java │ │ └── core │ │ └── BeanUtils.java │ └── config │ ├── Config.java │ └── CaptchaFormAuthenticationFilter.java ├── 0.png ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── .gitattributes ├── .gitignore ├── LICENSE └── README.md /src/main/resources/static/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/0.png -------------------------------------------------------------------------------- /1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/1.png -------------------------------------------------------------------------------- /2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/2.png -------------------------------------------------------------------------------- /3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/3.png -------------------------------------------------------------------------------- /4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/4.png -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.profiles.active=dev -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=Java 2 | *.css linguist-language=Java 3 | -------------------------------------------------------------------------------- /src/main/resources/simhei.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/simhei.ttf -------------------------------------------------------------------------------- /src/main/resources/image/catalogue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/image/catalogue.png -------------------------------------------------------------------------------- /src/main/resources/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/images/logo.png -------------------------------------------------------------------------------- /src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/application-dev.properties -------------------------------------------------------------------------------- /src/main/resources/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/images/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/assets/images/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/images/head.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/images/logo.png -------------------------------------------------------------------------------- /src/main/resources/static/webuploader/Uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/webuploader/Uploader.swf -------------------------------------------------------------------------------- /src/main/resources/fdfs_client.conf: -------------------------------------------------------------------------------- 1 | connect_timeout = 60 2 | network_timeout = 60 3 | charset = UTF-8 4 | 5 | # ip为宿主机的IP 6 | tracker_server = 172.17.0.2:22122 -------------------------------------------------------------------------------- /src/main/resources/static/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/images/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/layui_ext/dtree/font/dtreefont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/layui_ext/dtree/font/dtreefont.eot -------------------------------------------------------------------------------- /src/main/resources/static/layui_ext/dtree/font/dtreefont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/layui_ext/dtree/font/dtreefont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/font/iconfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/font/iconfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/0.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/1.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/10.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/11.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/12.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/13.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/14.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/15.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/16.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/17.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/18.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/19.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/2.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/20.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/21.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/22.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/23.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/24.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/25.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/26.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/27.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/28.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/29.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/3.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/30.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/31.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/32.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/33.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/34.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/35.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/36.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/37.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/38.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/39.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/4.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/40.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/41.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/42.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/43.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/44.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/45.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/46.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/47.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/48.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/49.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/5.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/50.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/51.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/52.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/53.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/54.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/55.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/56.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/57.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/58.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/59.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/6.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/60.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/61.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/62.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/63.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/64.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/65.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/66.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/67.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/68.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/69.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/7.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/70.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/71.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/8.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/images/face/9.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui_ext/dtree/font/dtreefont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/layui_ext/dtree/font/dtreefont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/module/uploadcustom/global.js: -------------------------------------------------------------------------------- 1 | layui.config({ 2 | debug:true 3 | }).extend({ 4 | //设定组件别名 5 | webUploadJs:'/uploadcustom/webuploadwarpper' 6 | }); -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chyanwu/erp-framework/HEAD/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /src/main/resources/templates/upload/uploadstatus.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | uploader 6 | 7 | 8 | 9 |

返回结果

10 | <#if message??> 11 |
${message}
12 | 13 | <#if path??> 14 |
${path}
15 | 16 | -------------------------------------------------------------------------------- /src/main/java/template/serviceTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${servicePackage}; 2 | 3 | import ${entityPackage}.${beanName}; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | /** 7 | *

8 | * ${remark} 服务类 9 | *

10 | * 11 | * @author ${author} 12 | * @date ${dateTime} 13 | * @version 14 | */ 15 | public interface ${beanName}Service extends BaseService<${beanName}, Object> { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/module/treetable-lay/treetable.css: -------------------------------------------------------------------------------- 1 | .treeTable-empty { 2 | width: 20px; 3 | display: inline-block; 4 | } 5 | 6 | .treeTable-icon { 7 | cursor: pointer; 8 | } 9 | 10 | .treeTable-icon .layui-icon-triangle-d:before { 11 | content: "\e623"; 12 | } 13 | 14 | .treeTable-icon.open .layui-icon-triangle-d:before { 15 | content: "\e625"; 16 | background-color: transparent; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/annotation/Log.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.METHOD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Log { 11 | String value() default ""; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/static/css/login.css: -------------------------------------------------------------------------------- 1 | body{overflow:hidden;} 2 | .login{ background: rgba(34,126,185, 0.5);height:300px;width:260px;padding: 20px;border-radius: 4px;position:absolute;left: 50%;top: 50%; margin:-150px 0 0 -150px;z-index:99;} 3 | .login h1{ text-align:center; color:#fff; font-size:24px; margin-bottom:20px; } 4 | .form_code{ position:relative; } 5 | .form_code .code{ position:absolute; right:0; top:1px; cursor:pointer; } 6 | .login_btn{ width:100%; } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | 25 | # IntellibJ IDEA 26 | .idea 27 | *.iws 28 | *.iml 29 | *.ipr 30 | -------------------------------------------------------------------------------- /src/main/resources/templates/upload/upload.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | uploader 6 | 7 | 8 | 9 | 10 |
11 |

12 | 13 |
14 | -------------------------------------------------------------------------------- /src/main/java/template/mapperTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${mapperPackage}; 2 | 3 | import java.util.List; 4 | import ${entityPackage}.${beanName}; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author ${author} 13 | * @date ${dateTime} 14 | * @version 15 | */ 16 | public interface ${beanName}Mapper extends Mapper<${beanName}>,InsertListMapper<${beanName}> { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/calendar/ErpRoomService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.calendar; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpRoom; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author chenyanwu 12 | * @date 2019-05-16 16:14:13 13 | * @version 14 | */ 15 | public interface ErpRoomService extends BaseService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/controller/HomeController.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.servlet.ModelAndView; 6 | 7 | @Controller 8 | public class HomeController { 9 | @GetMapping("/home/index") 10 | public ModelAndView index(ModelAndView modelAndView){ 11 | return modelAndView; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/rbac/ErpRoleMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRole; 4 | import tk.mybatis.mapper.common.Mapper; 5 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 6 | 7 | /** 8 | *

9 | *

10 | * 11 | * @author chenyanwu 12 | * @date 2019-02-21 17:39:55 13 | * @version 14 | */ 15 | public interface ErpRoleMapper extends Mapper,InsertListMapper { 16 | 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/importutil/ErpStudentExcelService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpStudentExcel; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author chenyanwu 12 | * @date 2019-04-26 15:26:52 13 | * @version 14 | */ 15 | public interface ErpStudentExcelService extends BaseService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/log/ErpLogMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.log; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.log.ErpLog; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-05-06 15:29:27 14 | * @version 15 | */ 16 | public interface ErpLogMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/calendar/ErpRoomMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.calendar; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpRoom; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-05-16 16:14:13 14 | * @version 15 | */ 16 | public interface ErpRoomMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/rbac/ErpRoleMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.rbac; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleMenu; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-02-27 17:04:18 14 | * @version 15 | */ 16 | public interface ErpRoleMenuMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/rbac/ErpRoleUserMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.rbac; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleUser; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-02-27 17:28:29 14 | * @version 15 | */ 16 | public interface ErpRoleUserMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/rbac/ErpRoleService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRole; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-02-21 17:39:55 15 | * @version 16 | */ 17 | public interface ErpRoleService extends BaseService { 18 | List selectByExample(Object var1); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/exception/ExceptionEnum.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.exception; 2 | 3 | public enum ExceptionEnum { 4 | SUCCESS(200), 5 | RESOURCE_NOT_FOUND(404), 6 | ARGUMENTS_INVALID(401), 7 | BUSINESS_ERROR(400), 8 | SERVER_ERROR(500); 9 | 10 | private ExceptionEnum(int code) { 11 | this.code = code; 12 | } 13 | 14 | private ExceptionEnum() { 15 | } 16 | 17 | // 成员变量 18 | private int code; 19 | 20 | public int getCode() { 21 | return this.code; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/bootstrap/main.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Bootstrap Plugin v4.1.0 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2019 Adam Shaw 5 | */.fc.fc-bootstrap a{text-decoration:none}.fc.fc-bootstrap a[data-goto]:hover{text-decoration:underline}.fc-bootstrap hr.fc-divider{border-color:inherit}.fc-bootstrap .fc-today.alert{border-radius:0}.fc-bootstrap a.fc-event:not([href]):not([tabindex]){color:#fff}.fc-bootstrap .fc-popover.card{position:absolute}.fc-bootstrap .fc-popover .card-body{padding:0}.fc-bootstrap .fc-time-grid .fc-slats table{background:0 0} -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/importutil/ErpStudentMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.importutil; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpStudent; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-04-28 14:14:49 14 | * @version 15 | */ 16 | public interface ErpStudentMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/dtree/DtreeService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.dtree; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.dtree.Dtree; 4 | import com.chenyanwu.erp.erpframework.entity.dtree.DtreeResponse; 5 | import com.chenyanwu.erp.erpframework.service.BaseService; 6 | 7 | /** 8 | * @Auther: chenyanwu 9 | * @Date: 2019/2/27 15:09 10 | * @Description: 11 | * @Version 1.0 12 | */ 13 | public interface DtreeService extends BaseService { 14 | DtreeResponse getMenuDtreeResponse(String roleId); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/rbac/ErpRoleMenuService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleMenu; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-02-27 17:04:18 15 | * @version 16 | */ 17 | public interface ErpRoleMenuService extends BaseService { 18 | int insertList(List var1); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/ErpFrameworkApplication.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @SpringBootApplication 8 | //@MapperScan(basePackages="com.chenyanwu.erp.erpframework.dao") 9 | public class ErpFrameworkApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(ErpFrameworkApplication.class, args); 13 | } 14 | 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/importutil/ErpSFamilyMemberMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.importutil; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpSFamilyMember; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 7 | 8 | /** 9 | *

10 | *

11 | * 12 | * @author chenyanwu 13 | * @date 2019-04-29 11:37:43 14 | * @version 15 | */ 16 | public interface ErpSFamilyMemberMapper extends Mapper,InsertListMapper { 17 | 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/log/ErpLogService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.log; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.log.ErpLog; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-05-06 15:29:27 15 | * @version 16 | */ 17 | public interface ErpLogService extends BaseService { 18 | List selectByExample(Object var1); 19 | 20 | Integer softDeleteByID(String id); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/rbac/ErpRoleUserService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleUser; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-02-27 17:28:29 15 | * @version 16 | */ 17 | public interface ErpRoleUserService extends BaseService { 18 | List selectByExample(Object var1); 19 | 20 | int insertList(List var1); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/rbac/ErpUserMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.rbac; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpUser; 5 | import org.apache.ibatis.annotations.Param; 6 | import tk.mybatis.mapper.common.Mapper; 7 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 8 | 9 | /** 10 | *

11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-02-27 11:14:41 15 | * @version 16 | */ 17 | public interface ErpUserMapper extends Mapper,InsertListMapper { 18 | 19 | 20 | ErpUser findUserByLoginName(@Param("loginName") String loginName); 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/BaseService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @ClassName BaseService 7 | * @Description TODO 8 | * @Author chenyanwu 9 | * @Date 2019/1/15 17:09 10 | * @Version 1.0 11 | */ 12 | public interface BaseService { 13 | int insertSelective(T t); 14 | 15 | int delete(T t); 16 | 17 | int deleteByPrimaryKey(Id id); 18 | 19 | int deleteByExample(Object o); 20 | 21 | int updateByPrimaryKey(T t); 22 | 23 | int updateByPrimaryKeySelective(T t); 24 | 25 | T selectByPrimaryKey(Id id); 26 | 27 | List selectAll(); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/importutil/ImportTemplate.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.importutil; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @Auther: chenyanwu 7 | * @Date: 2019/4/26 10:57 8 | * @Description: 使用模板模型,定义导入的通用类 9 | * @Version 1.0 10 | */ 11 | public interface ImportTemplate { 12 | /** 13 | * 导入功能需要返回结果,例如校验数据后,返回 14 | * @param list 15 | * @return 16 | */ 17 | T importDataReturn(List list, int fromIndex, int toIndex); 18 | 19 | /** 20 | * 导入功能不需要返回结果 21 | * @param list 22 | */ 23 | void importDataNoReturn(List list, int fromIndex, int toIndex); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/rbac/ErpMenuService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpMenu; 4 | import com.chenyanwu.erp.erpframework.entity.vo.ShowMenu; 5 | import com.chenyanwu.erp.erpframework.service.BaseService; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author chenyanwu 15 | * @date 2019-02-27 11:15:03 16 | * @version 17 | */ 18 | public interface ErpMenuService extends BaseService { 19 | String getTreeMenuList(String roleId); 20 | 21 | List getShowMenuByUser(String id); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/static/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #00b7ee; 14 | padding: 10px 15px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | } 20 | .webuploader-pick-hover { 21 | background: #00a2d4; 22 | } 23 | 24 | .webuploader-pick-disable { 25 | opacity: 0.6; 26 | pointer-events:none; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/en-au.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var enAu = { 8 | code: "en-au", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | } 13 | }; 14 | 15 | return enAu; 16 | 17 | })); 18 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/en-gb.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var enGb = { 8 | code: "en-gb", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | } 13 | }; 14 | 15 | return enGb; 16 | 17 | })); 18 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/en-nz.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var enNz = { 8 | code: "en-nz", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | } 13 | }; 14 | 15 | return enNz; 16 | 17 | })); 18 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/importutil/ErpSFamilyMemberService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpSFamilyMember; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-04-29 11:37:43 15 | * @version 16 | */ 17 | public interface ErpSFamilyMemberService extends BaseService { 18 | 19 | List findFamilyMemberByStuId(String stuId); 20 | 21 | int insertList(List list); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/rebel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/importutil/ErpStudentExcelMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.importutil; 2 | 3 | import java.util.List; 4 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpStudentExcel; 5 | import org.apache.ibatis.annotations.Param; 6 | import tk.mybatis.mapper.common.Mapper; 7 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 8 | 9 | /** 10 | *

11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-04-26 15:26:52 15 | * @version 16 | */ 17 | public interface ErpStudentExcelMapper extends Mapper,InsertListMapper { 18 | 19 | void batchDel(@Param("list") List erpStudentExcels); 20 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/rbac/ErpUserService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpUser; 4 | import com.chenyanwu.erp.erpframework.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author chenyanwu 14 | * @date 2019-02-27 11:14:41 15 | * @version 16 | */ 17 | public interface ErpUserService extends BaseService { 18 | List selectByExample(Object var1); 19 | 20 | /** 21 | * 通过登录名获取用户信息 22 | * @param loginName 23 | * @return 24 | */ 25 | ErpUser findUserByLoginName(String loginName); 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/dtree/Status.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.dtree; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/2/27 13:02 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class Status { 10 | /** 状态码*/ 11 | private int code = 200; 12 | /** 信息标识*/ 13 | private String message = "success"; 14 | public int getCode() { 15 | return code; 16 | } 17 | 18 | public void setCode(int code) { 19 | this.code = code; 20 | } 21 | 22 | public String getMessage() { 23 | return message; 24 | } 25 | 26 | public void setMessage(String message) { 27 | this.message = message; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/resources/mapper/rbac/ErpRoleMenuMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/resources/mapper/rbac/ErpRoleUserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/calendar/ErpCalendarTaskService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.calendar; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpCalendarTask; 4 | import com.chenyanwu.erp.erpframework.entity.vo.CalendarTaskVo; 5 | import com.chenyanwu.erp.erpframework.service.BaseService; 6 | 7 | import java.util.Date; 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 服务类 13 | *

14 | * 15 | * @author chenyanwu 16 | * @date 2019-05-16 17:02:47 17 | * @version 18 | */ 19 | public interface ErpCalendarTaskService extends BaseService { 20 | 21 | List getErpCalendarTaskByParams(String roomId, Date sTime, Date eTime); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %X{userId} - %msg%n 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/importutil/ErpStudentService.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpStudent; 4 | import com.chenyanwu.erp.erpframework.entity.importutil.StudentExcelImport; 5 | import com.chenyanwu.erp.erpframework.service.BaseService; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author chenyanwu 15 | * @date 2019-04-26 12:37:18 16 | * @version 17 | */ 18 | public interface ErpStudentService extends BaseService{ 19 | List selectByExample(Object var1); 20 | 21 | List findStudentErrorExcel(); 22 | 23 | int importDataByForkJoin(List list); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/calendar/ErpCalendarTaskMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.calendar; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpCalendarTask; 6 | import org.apache.ibatis.annotations.Param; 7 | import tk.mybatis.mapper.common.Mapper; 8 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 9 | 10 | /** 11 | *

12 | *

13 | * 14 | * @author chenyanwu 15 | * @date 2019-05-16 17:02:47 16 | * @version 17 | */ 18 | public interface ErpCalendarTaskMapper extends Mapper,InsertListMapper { 19 | 20 | List getErpCalendarTaskByParams(@Param("roomId") String roomId, @Param("sTime") Date sTime, @Param("eTime") Date eTime); 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/template/serviceImplTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${serviceImplPackage}; 2 | 3 | import ${entityPackage}.${beanName}; 4 | import ${mapperPackage}.${beanName}Mapper; 5 | import ${servicePackage}.${beanName}Service; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | /** 11 | *

12 | * ${remark} 服务实现类 13 | *

14 | * 15 | * @author ${author} 16 | * @date ${dateTime} 17 | * @version 18 | */ 19 | @Service 20 | public class ${beanName}ServiceImpl extends BaseServiceImpl<${beanName}, Object> 21 | implements ${beanName}Service { 22 | 23 | @Autowired 24 | private ${beanName}Mapper ${lowerBeanName}Mapper; 25 | 26 | @Autowired 27 | public void setMapper() { 28 | super.setMapper(${lowerBeanName}Mapper); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/dao/rbac/ErpMenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.dao.rbac; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import com.chenyanwu.erp.erpframework.entity.dtree.Dtree; 7 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpMenu; 8 | import com.chenyanwu.erp.erpframework.entity.vo.ShowMenu; 9 | import org.apache.ibatis.annotations.Param; 10 | import tk.mybatis.mapper.additional.insert.InsertListMapper; 11 | import tk.mybatis.mapper.common.Mapper; 12 | 13 | /** 14 | *

15 | *

16 | * 17 | * @author chenyanwu 18 | * @date 2019-02-27 11:15:03 19 | * @version 20 | */ 21 | public interface ErpMenuMapper extends Mapper, InsertListMapper { 22 | 23 | List getSysRoleTreeMenus(@Param("roleId") String roleId); 24 | 25 | List selectShowMenuByUser(Map map); 26 | } -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ko.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ko = { 8 | code: "ko", 9 | buttonText: { 10 | prev: "이전달", 11 | next: "다음달", 12 | today: "오늘", 13 | month: "월", 14 | week: "주", 15 | day: "일", 16 | list: "일정목록" 17 | }, 18 | weekLabel: "주", 19 | allDayText: "종일", 20 | eventLimitText: "개", 21 | noEventsMessage: "일정이 없습니다" 22 | }; 23 | 24 | return ko; 25 | 26 | })); 27 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/Constants.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/2/27 18:54 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class Constants { 10 | /** 11 | * shiro采用加密算法 12 | */ 13 | public static final String HASH_ALGORITHM = "SHA-1"; 14 | /** 15 | *系统用户默认密码 16 | */ 17 | public static final String DEFAULT_PASSWORD = "123456"; 18 | 19 | /** 20 | * 生成盐的长度 21 | */ 22 | public static final int SALT_SIZE = 8; 23 | 24 | /** 25 | * 生成Hash值的迭代次数 26 | */ 27 | public static final int HASH_INTERATIONS = 1024; 28 | 29 | /** 30 | * 验证码 31 | */ 32 | public static final String VALIDATE_CODE = "validateCode"; 33 | 34 | /** 35 | * fork/join 阈值 36 | */ 37 | public static final int THRESHOLD = 10; 38 | } 39 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/zh-tw.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var zhTw = { 8 | code: "zh-tw", 9 | buttonText: { 10 | prev: "上月", 11 | next: "下月", 12 | today: "今天", 13 | month: "月", 14 | week: "週", 15 | day: "天", 16 | list: "活動列表" 17 | }, 18 | weekLabel: "周", 19 | allDayText: "整天", 20 | eventLimitText: '顯示更多', 21 | noEventsMessage: "没有任何活動" 22 | }; 23 | 24 | return zhTw; 25 | 26 | })); 27 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/th.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var th = { 8 | code: "th", 9 | buttonText: { 10 | prev: "ย้อน", 11 | next: "ถัดไป", 12 | today: "วันนี้", 13 | month: "เดือน", 14 | week: "สัปดาห์", 15 | day: "วัน", 16 | list: "แผนงาน" 17 | }, 18 | allDayText: "ตลอดวัน", 19 | eventLimitText: "เพิ่มเติม", 20 | noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง" 21 | }; 22 | 23 | return th; 24 | 25 | })); 26 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/he.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var he = { 8 | code: "he", 9 | dir: 'rtl', 10 | buttonText: { 11 | prev: "הקודם", 12 | next: "הבא", 13 | today: "היום", 14 | month: "חודש", 15 | week: "שבוע", 16 | day: "יום", 17 | list: "סדר יום" 18 | }, 19 | allDayText: "כל היום", 20 | eventLimitText: "אחר", 21 | noEventsMessage: "אין אירועים להצגה", 22 | weekLabel: "שבוע" 23 | }; 24 | 25 | return he; 26 | 27 | })); 28 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ja.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ja = { 8 | code: "ja", 9 | buttonText: { 10 | prev: "前", 11 | next: "次", 12 | today: "今日", 13 | month: "月", 14 | week: "週", 15 | day: "日", 16 | list: "予定リスト" 17 | }, 18 | weekLabel: "週", 19 | allDayText: "終日", 20 | eventLimitText: function (n) { 21 | return "他 " + n + " 件"; 22 | }, 23 | noEventsMessage: "表示する予定はありません" 24 | }; 25 | 26 | return ja; 27 | 28 | })); 29 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/calendar/ErpRoom.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.calendar; 2 | 3 | import javax.persistence.*; 4 | import java.io.Serializable; 5 | import javax.validation.constraints.NotNull; 6 | 7 | import org.hibernate.validator.constraints.Length; 8 | import com.chenyanwu.erp.erpframework.entity.BaseEntity; 9 | 10 | import java.util.Date; 11 | 12 | 13 | /** 14 | *

15 | * 16 | * 17 | * 18 | *

19 | * 20 | * @author chenyanwu 21 | * @date 2019-05-16 16:14:13 22 | */ 23 | @Table(name = "erp_room") 24 | public class ErpRoom extends BaseEntity implements Serializable { 25 | 26 | /** 27 | * 会议室名称 28 | */ 29 | @Length(max = 50, message = "会议室名称 长度不能超过50") 30 | @Column(name = "name") 31 | private String name; 32 | 33 | 34 | public String getName() { 35 | return name; 36 | } 37 | 38 | public void setName(String name) { 39 | this.name = name; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/calendar/ErpRoomServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.calendar; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpRoom; 4 | import com.chenyanwu.erp.erpframework.dao.calendar.ErpRoomMapper; 5 | import com.chenyanwu.erp.erpframework.service.calendar.ErpRoomService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author chenyanwu 16 | * @date 2019-05-16 16:14:13 17 | * @version 18 | */ 19 | @Service 20 | public class ErpRoomServiceImpl extends BaseServiceImpl 21 | implements ErpRoomService { 22 | 23 | @Autowired 24 | private ErpRoomMapper erproomMapper; 25 | 26 | @Autowired 27 | public void setMapper() { 28 | super.setMapper(erproomMapper); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/dtree/CheckArr.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.dtree; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/2/27 15:13 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class CheckArr { 10 | public static final String CHECKED = "1"; 11 | /** 复选框标记 官方文档没有太多说明 先用默认值*/ 12 | private String type = "0"; 13 | /** 复选框是否选中 默认0未选中*/ 14 | private String isChecked = "0"; 15 | 16 | public CheckArr(){} 17 | public CheckArr(String type, String isChecked){ 18 | this.isChecked = isChecked; 19 | this.type = type; 20 | } 21 | 22 | 23 | public String getType() { 24 | return type; 25 | } 26 | 27 | public void setType(String type) { 28 | this.type = type; 29 | } 30 | 31 | public String getIsChecked() { 32 | return isChecked; 33 | } 34 | 35 | public void setIsChecked(String isChecked) { 36 | this.isChecked = isChecked; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/common.js: -------------------------------------------------------------------------------- 1 | var tableName = 'easyweb-open'; // 本地缓存表名 2 | var base_server = '/v1/'; // 接口地址 3 | 4 | // 配置layui模块所在的位置 5 | layui.config({ 6 | base: getProjectUrl() + 'assets/module/' 7 | }).extend({ 8 | formSelects: 'formSelects/formSelects-v4' 9 | }).use(['jquery', 'layer'], function () { 10 | var $ = layui.jquery; 11 | var layer = layui.layer; 12 | 13 | 14 | }); 15 | 16 | // 获取当前项目的绝对路径 17 | function getProjectUrl() { 18 | var layuiDir = layui.cache.dir; 19 | if (!layuiDir) { 20 | var js = document.scripts, last = js.length - 1, src; 21 | for (var i = last; i > 0; i--) { 22 | if (js[i].readyState === 'interactive') { 23 | src = js[i].src; 24 | break; 25 | } 26 | } 27 | var jsPath = src || js[last].src; 28 | layuiDir = jsPath.substring(0, jsPath.lastIndexOf('/') + 1); 29 | } 30 | return layuiDir.substring(0, layuiDir.indexOf('assets')); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/mk.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var mk = { 8 | code: "mk", 9 | buttonText: { 10 | prev: "претходно", 11 | next: "следно", 12 | today: "Денес", 13 | month: "Месец", 14 | week: "Недела", 15 | day: "Ден", 16 | list: "График" 17 | }, 18 | weekLabel: "Сед", 19 | allDayText: "Цел ден", 20 | eventLimitText: function (n) { 21 | return "+повеќе " + n; 22 | }, 23 | noEventsMessage: "Нема настани за прикажување" 24 | }; 25 | 26 | return mk; 27 | 28 | })); 29 | -------------------------------------------------------------------------------- /src/main/resources/mapper/importutil/ErpStudentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/fr-ca.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var frCa = { 8 | code: "fr", 9 | buttonText: { 10 | prev: "Précédent", 11 | next: "Suivant", 12 | today: "Aujourd'hui", 13 | year: "Année", 14 | month: "Mois", 15 | week: "Semaine", 16 | day: "Jour", 17 | list: "Mon planning" 18 | }, 19 | weekLabel: "Sem.", 20 | allDayHtml: "Toute la
journée", 21 | eventLimitText: "en plus", 22 | noEventsMessage: "Aucun événement à afficher" 23 | }; 24 | 25 | return frCa; 26 | 27 | })); 28 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/pt-br.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ptBr = { 8 | code: "pt-br", 9 | buttonText: { 10 | prev: "Anterior", 11 | next: "Próximo", 12 | today: "Hoje", 13 | month: "Mês", 14 | week: "Semana", 15 | day: "Dia", 16 | list: "Compromissos" 17 | }, 18 | weekLabel: "Sm", 19 | allDayText: "dia inteiro", 20 | eventLimitText: function (n) { 21 | return "mais +" + n; 22 | }, 23 | noEventsMessage: "Não há eventos para mostrar" 24 | }; 25 | 26 | return ptBr; 27 | 28 | })); 29 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/importutil/ErpStudentExcelServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpStudentExcel; 4 | import com.chenyanwu.erp.erpframework.dao.importutil.ErpStudentExcelMapper; 5 | import com.chenyanwu.erp.erpframework.service.importutil.ErpStudentExcelService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | /** 11 | *

12 | * 服务实现类 13 | *

14 | * 15 | * @author chenyanwu 16 | * @date 2019-04-26 15:26:52 17 | * @version 18 | */ 19 | @Service 20 | public class ErpStudentExcelServiceImpl extends BaseServiceImpl 21 | implements ErpStudentExcelService { 22 | 23 | @Autowired 24 | private ErpStudentExcelMapper erpstudentexcelMapper; 25 | 26 | @Autowired 27 | public void setMapper() { 28 | super.setMapper(erpstudentexcelMapper); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ka.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ka = { 8 | code: "ka", 9 | week: { 10 | dow: 1, 11 | doy: 7 12 | }, 13 | buttonText: { 14 | prev: "წინა", 15 | next: "შემდეგი", 16 | today: "დღეს", 17 | month: "თვე", 18 | week: "კვირა", 19 | day: "დღე", 20 | list: "დღის წესრიგი" 21 | }, 22 | weekLabel: "კვ", 23 | allDayText: "მთელი დღე", 24 | eventLimitText: function (n) { 25 | return "+ კიდევ " + n; 26 | }, 27 | noEventsMessage: "ღონისძიებები არ არის" 28 | }; 29 | 30 | return ka; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sv.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var sv = { 8 | code: "sv", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Förra", 15 | next: "Nästa", 16 | today: "Idag", 17 | month: "Månad", 18 | week: "Vecka", 19 | day: "Dag", 20 | list: "Program" 21 | }, 22 | weekLabel: "v.", 23 | allDayText: "Heldag", 24 | eventLimitText: "till", 25 | noEventsMessage: "Inga händelser att visa" 26 | }; 27 | 28 | return sv; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/es.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var es = { 8 | code: "es", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Ant", 15 | next: "Sig", 16 | today: "Hoy", 17 | month: "Mes", 18 | week: "Semana", 19 | day: "Día", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Sm", 23 | allDayHtml: "Todo
el día", 24 | eventLimitText: "más", 25 | noEventsMessage: "No hay eventos para mostrar" 26 | }; 27 | 28 | return es; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/gl.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var gl = { 8 | code: "gl", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Ant", 15 | next: "Seg", 16 | today: "Hoxe", 17 | month: "Mes", 18 | week: "Semana", 19 | day: "Día", 20 | list: "Axenda" 21 | }, 22 | weekLabel: "Sm", 23 | allDayHtml: "Todo
o día", 24 | eventLimitText: "máis", 25 | noEventsMessage: "Non hai eventos para amosar" 26 | }; 27 | 28 | return gl; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/hu.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var hu = { 8 | code: "hu", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "vissza", 15 | next: "előre", 16 | today: "ma", 17 | month: "Hónap", 18 | week: "Hét", 19 | day: "Nap", 20 | list: "Napló" 21 | }, 22 | weekLabel: "Hét", 23 | allDayText: "Egész nap", 24 | eventLimitText: "további", 25 | noEventsMessage: "Nincs megjeleníthető esemény" 26 | }; 27 | 28 | return hu; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/nb.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var nb = { 8 | code: "nb", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Forrige", 15 | next: "Neste", 16 | today: "I dag", 17 | month: "Måned", 18 | week: "Uke", 19 | day: "Dag", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Uke", 23 | allDayText: "Hele dagen", 24 | eventLimitText: "til", 25 | noEventsMessage: "Ingen hendelser å vise" 26 | }; 27 | 28 | return nb; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/nn.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var nn = { 8 | code: "nn", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Førre", 15 | next: "Neste", 16 | today: "I dag", 17 | month: "Månad", 18 | week: "Veke", 19 | day: "Dag", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Veke", 23 | allDayText: "Heile dagen", 24 | eventLimitText: "til", 25 | noEventsMessage: "Ingen hendelser å vise" 26 | }; 27 | 28 | return nn; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/tr.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var tr = { 8 | code: "tr", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "geri", 15 | next: "ileri", 16 | today: "bugün", 17 | month: "Ay", 18 | week: "Hafta", 19 | day: "Gün", 20 | list: "Ajanda" 21 | }, 22 | weekLabel: "Hf", 23 | allDayText: "Tüm gün", 24 | eventLimitText: "daha fazla", 25 | noEventsMessage: "Gösterilecek etkinlik yok" 26 | }; 27 | 28 | return tr; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/bootstrap/main.css: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Bootstrap Plugin v4.1.0 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2019 Adam Shaw 5 | */ 6 | .fc.fc-bootstrap a { 7 | text-decoration: none; } 8 | 9 | .fc.fc-bootstrap a[data-goto]:hover { 10 | text-decoration: underline; } 11 | 12 | .fc-bootstrap hr.fc-divider { 13 | border-color: inherit; } 14 | 15 | .fc-bootstrap .fc-today.alert { 16 | border-radius: 0; } 17 | 18 | .fc-bootstrap a.fc-event:not([href]):not([tabindex]) { 19 | color: #fff; } 20 | 21 | .fc-bootstrap .fc-popover.card { 22 | position: absolute; } 23 | 24 | /* Popover 25 | --------------------------------------------------------------------------------------------------*/ 26 | .fc-bootstrap .fc-popover .card-body { 27 | padding: 0; } 28 | 29 | /* TimeGrid Slats (lines that run horizontally) 30 | --------------------------------------------------------------------------------------------------*/ 31 | .fc-bootstrap .fc-time-grid .fc-slats table { 32 | /* some themes have background color. see through to slats */ 33 | background: none; } 34 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/da.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var da = { 8 | code: "da", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Forrige", 15 | next: "Næste", 16 | today: "Idag", 17 | month: "Måned", 18 | week: "Uge", 19 | day: "Dag", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Uge", 23 | allDayText: "Hele dagen", 24 | eventLimitText: "flere", 25 | noEventsMessage: "Ingen arrangementer at vise" 26 | }; 27 | 28 | return da; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/lt.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var lt = { 8 | code: "lt", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Atgal", 15 | next: "Pirmyn", 16 | today: "Šiandien", 17 | month: "Mėnuo", 18 | week: "Savaitė", 19 | day: "Diena", 20 | list: "Darbotvarkė" 21 | }, 22 | weekLabel: "SAV", 23 | allDayText: "Visą dieną", 24 | eventLimitText: "daugiau", 25 | noEventsMessage: "Nėra įvykių rodyti" 26 | }; 27 | 28 | return lt; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/pt.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var pt = { 8 | code: "pt", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Anterior", 15 | next: "Seguinte", 16 | today: "Hoje", 17 | month: "Mês", 18 | week: "Semana", 19 | day: "Dia", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Sem", 23 | allDayText: "Todo o dia", 24 | eventLimitText: "mais", 25 | noEventsMessage: "Não há eventos para mostrar" 26 | }; 27 | 28 | return pt; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sl.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var sl = { 8 | code: "sl", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Prejšnji", 15 | next: "Naslednji", 16 | today: "Trenutni", 17 | month: "Mesec", 18 | week: "Teden", 19 | day: "Dan", 20 | list: "Dnevni red" 21 | }, 22 | weekLabel: "Teden", 23 | allDayText: "Ves dan", 24 | eventLimitText: "več", 25 | noEventsMessage: "Ni dogodkov za prikaz" 26 | }; 27 | 28 | return sl; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ar = { 8 | code: "ar", 9 | week: { 10 | dow: 6, 11 | doy: 12 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return ar; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ca.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ca = { 8 | code: "ca", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Anterior", 15 | next: "Següent", 16 | today: "Avui", 17 | month: "Mes", 18 | week: "Setmana", 19 | day: "Dia", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Set", 23 | allDayText: "Tot el dia", 24 | eventLimitText: "més", 25 | noEventsMessage: "No hi ha esdeveniments per mostrar" 26 | }; 27 | 28 | return ca; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/es-us.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var esUs = { 8 | code: "es", 9 | week: { 10 | dow: 0, 11 | doy: 6 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Ant", 15 | next: "Sig", 16 | today: "Hoy", 17 | month: "Mes", 18 | week: "Semana", 19 | day: "Día", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Sm", 23 | allDayHtml: "Todo
el día", 24 | eventLimitText: "más", 25 | noEventsMessage: "No hay eventos para mostrar" 26 | }; 27 | 28 | return esUs; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/eu.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var eu = { 8 | code: "eu", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Aur", 15 | next: "Hur", 16 | today: "Gaur", 17 | month: "Hilabetea", 18 | week: "Astea", 19 | day: "Eguna", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "As", 23 | allDayHtml: "Egun
osoa", 24 | eventLimitText: "gehiago", 25 | noEventsMessage: "Ez dago ekitaldirik erakusteko" 26 | }; 27 | 28 | return eu; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/is.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var is = { 8 | code: "is", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Fyrri", 15 | next: "Næsti", 16 | today: "Í dag", 17 | month: "Mánuður", 18 | week: "Vika", 19 | day: "Dagur", 20 | list: "Dagskrá" 21 | }, 22 | weekLabel: "Vika", 23 | allDayHtml: "Allan
daginn", 24 | eventLimitText: "meira", 25 | noEventsMessage: "Engir viðburðir til að sýna" 26 | }; 27 | 28 | return is; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/lb.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var lb = { 8 | code: "lb", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Zréck", 15 | next: "Weider", 16 | today: "Haut", 17 | month: "Mount", 18 | week: "Woch", 19 | day: "Dag", 20 | list: "Terminiwwersiicht" 21 | }, 22 | weekLabel: "W", 23 | allDayText: "Ganzen Dag", 24 | eventLimitText: "méi", 25 | noEventsMessage: "Nee Evenementer ze affichéieren" 26 | }; 27 | 28 | return lb; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/nl.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var nl = { 8 | code: "nl", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Voorgaand", 15 | next: "Volgende", 16 | today: "Vandaag", 17 | year: "Jaar", 18 | month: "Maand", 19 | week: "Week", 20 | day: "Dag", 21 | list: "Agenda" 22 | }, 23 | allDayText: "Hele dag", 24 | eventLimitText: "extra", 25 | noEventsMessage: "Geen evenementen om te laten zien" 26 | }; 27 | 28 | return nl; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/af.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var af = { 8 | code: "af", 9 | week: { 10 | dow: 1, 11 | doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 12 | }, 13 | buttonText: { 14 | prev: "Vorige", 15 | next: "Volgende", 16 | today: "Vandag", 17 | year: "Jaar", 18 | month: "Maand", 19 | week: "Week", 20 | day: "Dag", 21 | list: "Agenda" 22 | }, 23 | allDayHtml: "Heeldag", 24 | eventLimitText: "Addisionele", 25 | noEventsMessage: "Daar is geen gebeurtenisse nie" 26 | }; 27 | 28 | return af; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/fi.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var fi = { 8 | code: "fi", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Edellinen", 15 | next: "Seuraava", 16 | today: "Tänään", 17 | month: "Kuukausi", 18 | week: "Viikko", 19 | day: "Päivä", 20 | list: "Tapahtumat" 21 | }, 22 | weekLabel: "Vk", 23 | allDayText: "Koko päivä", 24 | eventLimitText: "lisää", 25 | noEventsMessage: "Ei näytettäviä tapahtumia" 26 | }; 27 | 28 | return fi; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/id.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var id = { 8 | code: "id", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "mundur", 15 | next: "maju", 16 | today: "hari ini", 17 | month: "Bulan", 18 | week: "Minggu", 19 | day: "Hari", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Mg", 23 | allDayHtml: "Sehari
penuh", 24 | eventLimitText: "lebih", 25 | noEventsMessage: "Tidak ada acara untuk ditampilkan" 26 | }; 27 | 28 | return id; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/pl.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var pl = { 8 | code: "pl", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Poprzedni", 15 | next: "Następny", 16 | today: "Dziś", 17 | month: "Miesiąc", 18 | week: "Tydzień", 19 | day: "Dzień", 20 | list: "Plan dnia" 21 | }, 22 | weekLabel: "Tydz", 23 | allDayText: "Cały dzień", 24 | eventLimitText: "więcej", 25 | noEventsMessage: "Brak wydarzeń do wyświetlenia" 26 | }; 27 | 28 | return pl; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-dz.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arDz = { 8 | code: "ar-dz", 9 | week: { 10 | dow: 0, 11 | doy: 4 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arDz; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-kw.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arKw = { 8 | code: "ar-kw", 9 | week: { 10 | dow: 0, 11 | doy: 12 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arKw; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-ly.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arLy = { 8 | code: "ar-ly", 9 | week: { 10 | dow: 6, 11 | doy: 12 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arLy; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-ma.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arMa = { 8 | code: "ar-ma", 9 | week: { 10 | dow: 6, 11 | doy: 12 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arMa; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-sa.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arSa = { 8 | code: "ar-sa", 9 | week: { 10 | dow: 0, 11 | doy: 6 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arSa; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ar-tn.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var arTn = { 8 | code: "ar-tn", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "السابق", 16 | next: "التالي", 17 | today: "اليوم", 18 | month: "شهر", 19 | week: "أسبوع", 20 | day: "يوم", 21 | list: "أجندة" 22 | }, 23 | weekLabel: "أسبوع", 24 | allDayText: "اليوم كله", 25 | eventLimitText: "أخرى", 26 | noEventsMessage: "أي أحداث لعرض" 27 | }; 28 | 29 | return arTn; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/bg.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var bg = { 8 | code: "bg", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "назад", 15 | next: "напред", 16 | today: "днес", 17 | month: "Месец", 18 | week: "Седмица", 19 | day: "Ден", 20 | list: "График" 21 | }, 22 | allDayText: "Цял ден", 23 | eventLimitText: function (n) { 24 | return "+още " + n; 25 | }, 26 | noEventsMessage: "Няма събития за показване" 27 | }; 28 | 29 | return bg; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/dtree/DtreeResponse.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.dtree; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/2/27 13:01 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class DtreeResponse { 10 | /** 状态码*/ 11 | private int code; 12 | /** 信息标识*/ 13 | private String msg; 14 | /** 状态类*/ 15 | private Status status; 16 | /** 数据*/ 17 | private Object data; 18 | public int getCode() { 19 | return code; 20 | } 21 | 22 | public void setCode(int code) { 23 | this.code = code; 24 | } 25 | 26 | public String getMsg() { 27 | return msg; 28 | } 29 | 30 | public void setMsg(String msg) { 31 | this.msg = msg; 32 | } 33 | 34 | public Status getStatus() { 35 | return status; 36 | } 37 | 38 | public void setStatus(Status status) { 39 | this.status = status; 40 | } 41 | 42 | public Object getData() { 43 | return data; 44 | } 45 | 46 | public void setData(Object data) { 47 | this.data = data; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/importutil/StudentExcelImport.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.importutil; 2 | 3 | import cn.afterturn.easypoi.excel.annotation.Excel; 4 | 5 | /** 6 | * @Auther: chenyanwu 7 | * @Date: 2019/4/26 15:05 8 | * @Description: 9 | * @Version 1.0 10 | */ 11 | public class StudentExcelImport { 12 | @Excel(name = "姓名", orderNum = "1", width = 20) 13 | private String name; 14 | 15 | @Excel(name = "年龄", orderNum = "2") 16 | private Integer age; 17 | 18 | @Excel(name = "地址", orderNum = "3", width = 60) 19 | private String address; 20 | 21 | public String getName() { 22 | return name; 23 | } 24 | 25 | public void setName(String name) { 26 | this.name = name; 27 | } 28 | 29 | public Integer getAge() { 30 | return age; 31 | } 32 | 33 | public void setAge(Integer age) { 34 | this.age = age; 35 | } 36 | 37 | public String getAddress() { 38 | return address; 39 | } 40 | 41 | public void setAddress(String address) { 42 | this.address = address; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 chyanwu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/el.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var el = { 8 | code: "el", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Προηγούμενος", 15 | next: "Επόμενος", 16 | today: "Σήμερα", 17 | month: "Μήνας", 18 | week: "Εβδομάδα", 19 | day: "Ημέρα", 20 | list: "Ατζέντα" 21 | }, 22 | weekLabel: "Εβδ", 23 | allDayText: "Ολοήμερο", 24 | eventLimitText: "περισσότερα", 25 | noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί" 26 | }; 27 | 28 | return el; 29 | 30 | })); 31 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/daygrid/main.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Day Grid Plugin v4.1.0 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2019 Adam Shaw 5 | */.fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em} -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/cs.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var cs = { 8 | code: "cs", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Dříve", 15 | next: "Později", 16 | today: "Nyní", 17 | month: "Měsíc", 18 | week: "Týden", 19 | day: "Den", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Týd", 23 | allDayText: "Celý den", 24 | eventLimitText: function (n) { 25 | return "+další: " + n; 26 | }, 27 | noEventsMessage: "Žádné akce k zobrazení" 28 | }; 29 | 30 | return cs; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/kk.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var kk = { 8 | code: "kk", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Алдыңғы", 15 | next: "Келесі", 16 | today: "Бүгін", 17 | month: "Ай", 18 | week: "Апта", 19 | day: "Күн", 20 | list: "Күн тәртібі" 21 | }, 22 | weekLabel: "Не", 23 | allDayText: "Күні бойы", 24 | eventLimitText: function (n) { 25 | return "+ тағы " + n; 26 | }, 27 | noEventsMessage: "Көрсету үшін оқиғалар жоқ" 28 | }; 29 | 30 | return kk; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/lv.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var lv = { 8 | code: "lv", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Iepr.", 15 | next: "Nāk.", 16 | today: "Šodien", 17 | month: "Mēnesis", 18 | week: "Nedēļa", 19 | day: "Diena", 20 | list: "Dienas kārtība" 21 | }, 22 | weekLabel: "Ned.", 23 | allDayText: "Visu dienu", 24 | eventLimitText: function (n) { 25 | return "+vēl " + n; 26 | }, 27 | noEventsMessage: "Nav notikumu" 28 | }; 29 | 30 | return lv; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sr.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var sr = { 8 | code: "sr", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Prethodna", 15 | next: "Sledeći", 16 | today: "Danas", 17 | month: "Mеsеc", 18 | week: "Nеdеlja", 19 | day: "Dan", 20 | list: "Planеr" 21 | }, 22 | weekLabel: "Sed", 23 | allDayText: "Cеo dan", 24 | eventLimitText: function (n) { 25 | return "+ još " + n; 26 | }, 27 | noEventsMessage: "Nеma događaja za prikaz" 28 | }; 29 | 30 | return sr; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/et.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var et = { 8 | code: "et", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Eelnev", 15 | next: "Järgnev", 16 | today: "Täna", 17 | month: "Kuu", 18 | week: "Nädal", 19 | day: "Päev", 20 | list: "Päevakord" 21 | }, 22 | weekLabel: "näd", 23 | allDayText: "Kogu päev", 24 | eventLimitText: function (n) { 25 | return "+ veel " + n; 26 | }, 27 | noEventsMessage: "Kuvamiseks puuduvad sündmused" 28 | }; 29 | 30 | return et; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/fr.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var fr = { 8 | code: "fr", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Précédent", 15 | next: "Suivant", 16 | today: "Aujourd'hui", 17 | year: "Année", 18 | month: "Mois", 19 | week: "Semaine", 20 | day: "Jour", 21 | list: "Mon planning" 22 | }, 23 | weekLabel: "Sem.", 24 | allDayHtml: "Toute la
journée", 25 | eventLimitText: "en plus", 26 | noEventsMessage: "Aucun événement à afficher" 27 | }; 28 | 29 | return fr; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/hi.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var hi = { 8 | code: "hi", 9 | week: { 10 | dow: 0, 11 | doy: 6 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "पिछला", 15 | next: "अगला", 16 | today: "आज", 17 | month: "महीना", 18 | week: "सप्ताह", 19 | day: "दिन", 20 | list: "कार्यसूची" 21 | }, 22 | weekLabel: "हफ्ता", 23 | allDayText: "सभी दिन", 24 | eventLimitText: function (n) { 25 | return "+अधिक " + n; 26 | }, 27 | noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए" 28 | }; 29 | 30 | return hi; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/hr.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var hr = { 8 | code: "hr", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Prijašnji", 15 | next: "Sljedeći", 16 | today: "Danas", 17 | month: "Mjesec", 18 | week: "Tjedan", 19 | day: "Dan", 20 | list: "Raspored" 21 | }, 22 | weekLabel: "Tje", 23 | allDayText: "Cijeli dan", 24 | eventLimitText: function (n) { 25 | return "+ još " + n; 26 | }, 27 | noEventsMessage: "Nema događaja za prikaz" 28 | }; 29 | 30 | return hr; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ru.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ru = { 8 | code: "ru", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Пред", 15 | next: "След", 16 | today: "Сегодня", 17 | month: "Месяц", 18 | week: "Неделя", 19 | day: "День", 20 | list: "Повестка дня" 21 | }, 22 | weekLabel: "Нед", 23 | allDayText: "Весь день", 24 | eventLimitText: function (n) { 25 | return "+ ещё " + n; 26 | }, 27 | noEventsMessage: "Нет событий для отображения" 28 | }; 29 | 30 | return ru; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/vi.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var vi = { 8 | code: "vi", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Trước", 15 | next: "Tiếp", 16 | today: "Hôm nay", 17 | month: "Tháng", 18 | week: "Tuần", 19 | day: "Ngày", 20 | list: "Lịch biểu" 21 | }, 22 | weekLabel: "Tu", 23 | allDayText: "Cả ngày", 24 | eventLimitText: function (n) { 25 | return "+ thêm " + n; 26 | }, 27 | noEventsMessage: "Không có sự kiện để hiển thị" 28 | }; 29 | 30 | return vi; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/mapper/importutil/ErpSFamilyMemberMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/bs.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var bs = { 8 | code: "bs", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Prošli", 15 | next: "Sljedeći", 16 | today: "Danas", 17 | month: "Mjesec", 18 | week: "Sedmica", 19 | day: "Dan", 20 | list: "Raspored" 21 | }, 22 | weekLabel: "Sed", 23 | allDayText: "Cijeli dan", 24 | eventLimitText: function (n) { 25 | return "+ još " + n; 26 | }, 27 | noEventsMessage: "Nema događaja za prikazivanje" 28 | }; 29 | 30 | return bs; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/fa.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var fa = { 8 | code: "fa", 9 | week: { 10 | dow: 6, 11 | doy: 12 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | dir: 'rtl', 14 | buttonText: { 15 | prev: "قبلی", 16 | next: "بعدی", 17 | today: "امروز", 18 | month: "ماه", 19 | week: "هفته", 20 | day: "روز", 21 | list: "برنامه" 22 | }, 23 | weekLabel: "هف", 24 | allDayText: "تمام روز", 25 | eventLimitText: function (n) { 26 | return "بیش از " + n; 27 | }, 28 | noEventsMessage: "هیچ رویدادی به نمایش" 29 | }; 30 | 31 | return fa; 32 | 33 | })); 34 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sq.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var sq = { 8 | code: "sq", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "mbrapa", 15 | next: "Përpara", 16 | today: "sot", 17 | month: "Muaj", 18 | week: "Javë", 19 | day: "Ditë", 20 | list: "Listë" 21 | }, 22 | weekLabel: "Ja", 23 | allDayHtml: "Gjithë
ditën", 24 | eventLimitText: function (n) { 25 | return "+më tepër " + n; 26 | }, 27 | noEventsMessage: "Nuk ka evente për të shfaqur" 28 | }; 29 | 30 | return sq; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/fr-ch.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var frCh = { 8 | code: "fr-ch", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Précédent", 15 | next: "Suivant", 16 | today: "Courant", 17 | year: "Année", 18 | month: "Mois", 19 | week: "Semaine", 20 | day: "Jour", 21 | list: "Mon planning" 22 | }, 23 | weekLabel: "Sm", 24 | allDayHtml: "Toute la
journée", 25 | eventLimitText: "en plus", 26 | noEventsMessage: "Aucun événement à afficher" 27 | }; 28 | 29 | return frCh; 30 | 31 | })); 32 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ro.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ro = { 8 | code: "ro", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "precedentă", 15 | next: "următoare", 16 | today: "Azi", 17 | month: "Lună", 18 | week: "Săptămână", 19 | day: "Zi", 20 | list: "Agendă" 21 | }, 22 | weekLabel: "Săpt", 23 | allDayText: "Toată ziua", 24 | eventLimitText: function (n) { 25 | return "+alte " + n; 26 | }, 27 | noEventsMessage: "Nu există evenimente de afișat" 28 | }; 29 | 30 | return ro; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sk.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var sk = { 8 | code: "sk", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Predchádzajúci", 15 | next: "Nasledujúci", 16 | today: "Dnes", 17 | month: "Mesiac", 18 | week: "Týždeň", 19 | day: "Deň", 20 | list: "Rozvrh" 21 | }, 22 | weekLabel: "Ty", 23 | allDayText: "Celý deň", 24 | eventLimitText: function (n) { 25 | return "+ďalšie: " + n; 26 | }, 27 | noEventsMessage: "Žiadne akcie na zobrazenie" 28 | }; 29 | 30 | return sk; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/it.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var it = { 8 | code: "it", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Prec", 15 | next: "Succ", 16 | today: "Oggi", 17 | month: "Mese", 18 | week: "Settimana", 19 | day: "Giorno", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Sm", 23 | allDayHtml: "Tutto il
giorno", 24 | eventLimitText: function (n) { 25 | return "+altri " + n; 26 | }, 27 | noEventsMessage: "Non ci sono eventi da visualizzare" 28 | }; 29 | 30 | return it; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/sr-cyrl.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var srCyrl = { 8 | code: "sr-cyrl", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Претходна", 15 | next: "следећи", 16 | today: "Данас", 17 | month: "Месец", 18 | week: "Недеља", 19 | day: "Дан", 20 | list: "Планер" 21 | }, 22 | weekLabel: "Сед", 23 | allDayText: "Цео дан", 24 | eventLimitText: function (n) { 25 | return "+ још " + n; 26 | }, 27 | noEventsMessage: "Нема догађаја за приказ" 28 | }; 29 | 30 | return srCyrl; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/uk.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var uk = { 8 | code: "uk", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Попередній", 15 | next: "далі", 16 | today: "Сьогодні", 17 | month: "Місяць", 18 | week: "Тиждень", 19 | day: "День", 20 | list: "Порядок денний" 21 | }, 22 | weekLabel: "Тиж", 23 | allDayText: "Увесь день", 24 | eventLimitText: function (n) { 25 | return "+ще " + n + "..."; 26 | }, 27 | noEventsMessage: "Немає подій для відображення" 28 | }; 29 | 30 | return uk; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/ms.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var ms = { 8 | code: "ms", 9 | week: { 10 | dow: 1, 11 | doy: 7 // The week that contains Jan 1st is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Sebelum", 15 | next: "Selepas", 16 | today: "hari ini", 17 | month: "Bulan", 18 | week: "Minggu", 19 | day: "Hari", 20 | list: "Agenda" 21 | }, 22 | weekLabel: "Mg", 23 | allDayText: "Sepanjang hari", 24 | eventLimitText: function (n) { 25 | return "masih ada " + n + " acara"; 26 | }, 27 | noEventsMessage: "Tiada peristiwa untuk dipaparkan" 28 | }; 29 | 30 | return ms; 31 | 32 | })); 33 | -------------------------------------------------------------------------------- /src/main/java/template/xmlTemplate.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #foreach ( $item in ${columns}) 6 | #set($iskey=false) 7 | #foreach($key in $primaryKeys) 8 | #if( $item.column == $key ) 9 | #set($iskey=true) 10 | 11 | #end 12 | #end 13 | #end 14 | 15 | #foreach ( $item in ${columns}) 16 | #set($iskey=false) 17 | #foreach($key in $primaryKeys) 18 | #if( $item.column == $key ) 19 | #set($iskey=true) 20 | #end 21 | #end 22 | #if($iskey ==false) 23 | 24 | #end 25 | #end 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/de.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var de = { 8 | code: "de", 9 | week: { 10 | dow: 1, 11 | doy: 4 // The week that contains Jan 4th is the first week of the year. 12 | }, 13 | buttonText: { 14 | prev: "Zurück", 15 | next: "Vor", 16 | today: "Heute", 17 | year: "Jahr", 18 | month: "Monat", 19 | week: "Woche", 20 | day: "Tag", 21 | list: "Terminübersicht" 22 | }, 23 | weekLabel: "KW", 24 | allDayText: "Ganztägig", 25 | eventLimitText: function (n) { 26 | return "+ weitere " + n; 27 | }, 28 | noEventsMessage: "Keine Ereignisse anzuzeigen" 29 | }; 30 | 31 | return de; 32 | 33 | })); 34 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/core/locales/zh-cn.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory())); 5 | }(this, function () { 'use strict'; 6 | 7 | var zhCn = { 8 | code: "zh-cn", 9 | week: { 10 | // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 11 | dow: 1, 12 | doy: 4 // The week that contains Jan 4th is the first week of the year. 13 | }, 14 | buttonText: { 15 | prev: "上月", 16 | next: "下月", 17 | today: "今天", 18 | month: "月", 19 | week: "周", 20 | day: "日", 21 | list: "日程" 22 | }, 23 | weekLabel: "周", 24 | allDayText: "全天", 25 | eventLimitText: function (n) { 26 | return "另外 " + n + " 个"; 27 | }, 28 | noEventsMessage: "没有事件显示" 29 | }; 30 | 31 | return zhCn; 32 | 33 | })); 34 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/rbac/ErpRoleMenuServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleMenu; 4 | import com.chenyanwu.erp.erpframework.dao.rbac.ErpRoleMenuMapper; 5 | import com.chenyanwu.erp.erpframework.service.rbac.ErpRoleMenuService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | *

14 | * 服务实现类 15 | *

16 | * 17 | * @author chenyanwu 18 | * @date 2019-02-27 17:04:18 19 | */ 20 | @Service 21 | public class ErpRoleMenuServiceImpl extends BaseServiceImpl 22 | implements ErpRoleMenuService { 23 | 24 | @Autowired 25 | private ErpRoleMenuMapper erprolemenuMapper; 26 | 27 | @Autowired 28 | public void setMapper() { 29 | super.setMapper(erprolemenuMapper); 30 | } 31 | 32 | @Override 33 | public int insertList(List var1) { 34 | return erprolemenuMapper.insertList(var1); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/upload/WaterMarkImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.upload; 2 | 3 | import com.chenyanwu.erp.erpframework.service.upload.WaterMarkTemplate; 4 | 5 | import java.awt.*; 6 | 7 | /** 8 | * @ClassName WaterMarkImpl 9 | * @Description 在图片上添加水印 10 | * @Author chenyanwu 11 | * @Date 2018/12/17 12:26 12 | * @Version 1.0 13 | */ 14 | public class WaterMarkImpl extends WaterMarkTemplate { 15 | @Override 16 | public void drawString(String text, int width, int height, Graphics2D graphics2D) { 17 | String markText = WATER_MARK; 18 | if(!"".equals(text)) { 19 | markText = text; 20 | } 21 | //计算文字水印的宽高 22 | int fontW = FONT_SIZE * getTextLength(markText); 23 | int fontH = FONT_SIZE; 24 | 25 | int widthDiff = width - fontW; 26 | int heightDiff = height - fontH; 27 | 28 | int x = X; 29 | int y= Y; 30 | 31 | if(x>widthDiff){ 32 | x = widthDiff; 33 | } 34 | if (y>heightDiff){ 35 | y = heightDiff; 36 | } 37 | // 将水印文字绘制到画板 38 | graphics2D.drawString(markText, x, y + FONT_SIZE); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/list/main.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar List View Plugin v4.1.0 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2019 Adam Shaw 5 | */.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} -------------------------------------------------------------------------------- /src/main/resources/templates/upload/uploadphoto.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | videoPlay 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/resources/templates/home/index.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 |
第一
24 |
25 |
26 |
第二
27 |
28 |
29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/resources/templates/upload/uploadvideo.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | videoPlay 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/resources/mapper/calendar/ErpRoomMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/util/JsonUtil.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common.util; 2 | 3 | import com.fasterxml.jackson.core.JsonFactory; 4 | import com.fasterxml.jackson.core.JsonGenerator; 5 | import com.fasterxml.jackson.databind.ObjectMapper; 6 | 7 | import java.io.StringWriter; 8 | 9 | /** 10 | * @Auther: chenyanwu 11 | * @Date: 2019/2/22 12:54 12 | * @Description: 13 | * @Version 1.0 14 | */ 15 | public class JsonUtil { 16 | private static ObjectMapper mapper; 17 | 18 | static { 19 | mapper=SpringContextHolder.getBean(ObjectMapper.class); 20 | } 21 | public static String bean2Json(Object obj) { 22 | try { 23 | StringWriter sw = new StringWriter(); 24 | JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); 25 | 26 | 27 | mapper.writeValue(gen, obj); 28 | gen.close(); 29 | 30 | return sw.toString(); 31 | }catch (Exception e){ 32 | return null; 33 | } 34 | 35 | } 36 | 37 | public static T json2Bean(String jsonStr, Class objClass) { 38 | try { 39 | return mapper.readValue(jsonStr, objClass); 40 | } 41 | catch (Exception e){ 42 | return null; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/rbac/ErpUserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpUser; 4 | import com.chenyanwu.erp.erpframework.dao.rbac.ErpUserMapper; 5 | import com.chenyanwu.erp.erpframework.service.rbac.ErpUserService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | *

14 | * 服务实现类 15 | *

16 | * 17 | * @author chenyanwu 18 | * @date 2019-02-27 11:14:41 19 | */ 20 | @Service("erpUserService") 21 | public class ErpUserServiceImpl extends BaseServiceImpl 22 | implements ErpUserService { 23 | 24 | @Autowired 25 | private ErpUserMapper erpuserMapper; 26 | 27 | @Autowired 28 | public void setMapper() { 29 | super.setMapper(erpuserMapper); 30 | } 31 | 32 | @Override 33 | public List selectByExample(Object var1) { 34 | return erpuserMapper.selectByExample(var1); 35 | } 36 | 37 | @Override 38 | public ErpUser findUserByLoginName(String loginName) { 39 | return erpuserMapper.findUserByLoginName(loginName); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/controller/calendar/CalendarController.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.controller.calendar; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.calendar.ErpRoom; 4 | import com.chenyanwu.erp.erpframework.service.calendar.ErpRoomService; 5 | import javafx.collections.MapChangeListener; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.web.bind.annotation.GetMapping; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.servlet.ModelAndView; 11 | 12 | import java.util.HashMap; 13 | import java.util.List; 14 | import java.util.Map; 15 | 16 | /** 17 | * @Auther: chenyanwu 18 | * @Date: 2019/5/15 09:19 19 | * @Description: 20 | * @Version 1.0 21 | */ 22 | @Controller 23 | @RequestMapping("/calendar") 24 | public class CalendarController { 25 | 26 | @Autowired 27 | ErpRoomService roomService; 28 | 29 | @GetMapping("/index") 30 | public ModelAndView index(ModelAndView modelAndView) { 31 | List list = roomService.selectAll(); 32 | Map> map = new HashMap<>(); 33 | map.put("roomList", list); 34 | modelAndView.addAllObjects(map); 35 | return modelAndView; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/rbac/ErpRoleUserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRoleUser; 4 | import com.chenyanwu.erp.erpframework.dao.rbac.ErpRoleUserMapper; 5 | import com.chenyanwu.erp.erpframework.service.rbac.ErpRoleUserService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | *

14 | * 服务实现类 15 | *

16 | * 17 | * @author chenyanwu 18 | * @date 2019-02-27 17:28:29 19 | */ 20 | @Service 21 | public class ErpRoleUserServiceImpl extends BaseServiceImpl 22 | implements ErpRoleUserService { 23 | 24 | @Autowired 25 | private ErpRoleUserMapper erproleuserMapper; 26 | 27 | @Autowired 28 | public void setMapper() { 29 | super.setMapper(erproleuserMapper); 30 | } 31 | 32 | @Override 33 | public List selectByExample(Object var1) { 34 | return erproleuserMapper.selectByExample(var1); 35 | } 36 | 37 | @Override 38 | public int insertList(List var1) { 39 | return erproleuserMapper.insertList(var1); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/rbac/ErpRoleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpRole; 4 | import com.chenyanwu.erp.erpframework.dao.rbac.ErpRoleMapper; 5 | import com.chenyanwu.erp.erpframework.service.rbac.ErpRoleService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | import org.springframework.stereotype.Service; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | *

16 | * 服务实现类 17 | *

18 | * 19 | * @author chenyanwu 20 | * @date 2019-02-21 17:39:55 21 | */ 22 | @Service 23 | public class ErpRoleServiceImpl extends BaseServiceImpl 24 | implements ErpRoleService { 25 | 26 | private final Logger logger = LoggerFactory.getLogger(ErpRoleServiceImpl.class); 27 | 28 | @Autowired 29 | private ErpRoleMapper erproleMapper; 30 | 31 | @Autowired 32 | public void setMapper() { 33 | super.setMapper(erproleMapper); 34 | } 35 | 36 | @Override 37 | public List selectByExample(Object var1) { 38 | logger.info("当前的条件值为:[{}]" + var1); 39 | return erproleMapper.selectByExample(var1); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/PageResultBean.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common; 2 | 3 | /** 4 | * @ClassName PageResultBean 5 | * @Description TODO 6 | * @Author chenyanwu 7 | * @Date 2019/1/15 16:36 8 | * @Version 1.0 9 | */ 10 | public class PageResultBean extends ResultBean { 11 | private int pageNum; 12 | private int pageSize; 13 | private long total; 14 | 15 | public PageResultBean() { 16 | } 17 | 18 | /** 19 | * total的值需要自己给根据实际数据设置 20 | * 21 | * @param data 22 | * @param pageNum 23 | * @param pageSize 24 | */ 25 | public PageResultBean(T data, int pageNum, int pageSize, long total) { 26 | super(data); 27 | this.pageNum = pageNum; 28 | this.pageSize = pageSize; 29 | this.total = total; 30 | } 31 | 32 | public int getPageNum() { 33 | return pageNum; 34 | } 35 | 36 | public void setPageNum(int pageNum) { 37 | this.pageNum = pageNum; 38 | } 39 | 40 | public int getPageSize() { 41 | return pageSize; 42 | } 43 | 44 | public void setPageSize(int pageSize) { 45 | this.pageSize = pageSize; 46 | } 47 | 48 | public long getTotal() { 49 | return total; 50 | } 51 | 52 | public void setTotal(long total) { 53 | this.total = total; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/vo/CalendarTaskVo.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.vo; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * @Auther: chenyanwu 7 | * @Date: 2019/5/16 17:54 8 | * @Description: 9 | * @Version 1.0 10 | */ 11 | public class CalendarTaskVo { 12 | private String title; 13 | private String start; 14 | private String end; 15 | private String id; 16 | private Map extendedProps; 17 | 18 | public String getTitle() { 19 | return title; 20 | } 21 | 22 | public void setTitle(String title) { 23 | this.title = title; 24 | } 25 | 26 | public String getStart() { 27 | return start; 28 | } 29 | 30 | public void setStart(String start) { 31 | this.start = start; 32 | } 33 | 34 | public String getEnd() { 35 | return end; 36 | } 37 | 38 | public void setEnd(String end) { 39 | this.end = end; 40 | } 41 | 42 | public String getId() { 43 | return id; 44 | } 45 | 46 | public void setId(String id) { 47 | this.id = id; 48 | } 49 | 50 | public Map getExtendedProps() { 51 | return extendedProps; 52 | } 53 | 54 | public void setExtendedProps(Map extendedProps) { 55 | this.extendedProps = extendedProps; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/vo/ShowMenu.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.vo; 2 | 3 | 4 | import java.util.List; 5 | 6 | public class ShowMenu { 7 | private String id; 8 | private String pid; 9 | private String title; 10 | private String icon; 11 | private String href; 12 | private List children; 13 | 14 | public String getId() { 15 | return id; 16 | } 17 | 18 | public void setId(String id) { 19 | this.id = id; 20 | } 21 | 22 | public String getPid() { 23 | return pid; 24 | } 25 | 26 | public void setPid(String pid) { 27 | this.pid = pid; 28 | } 29 | 30 | public String getHref() { 31 | return href; 32 | } 33 | 34 | public void setHref(String href) { 35 | this.href = href; 36 | } 37 | 38 | public String getIcon() { 39 | return icon; 40 | } 41 | 42 | public void setIcon(String icon) { 43 | this.icon = icon; 44 | } 45 | 46 | public String getTitle() { 47 | return title; 48 | } 49 | 50 | public void setTitle(String title) { 51 | this.title = title; 52 | } 53 | 54 | public List getChildren() { 55 | return children; 56 | } 57 | 58 | public void setChildren(List children) { 59 | this.children = children; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.exception; 2 | 3 | 4 | /** 5 | * Created by wd on 2016-7-20. 6 | */ 7 | //业务异常,异常里的信息为友好信息,可以直接展示给用户查看,例如登录时提示“用户名不存在或密码错误” 8 | public class BusinessException extends RuntimeException{ 9 | private String errCode; 10 | private Object data; 11 | 12 | public BusinessException(String errCode, String errMsg){ 13 | super(errMsg); 14 | this.errCode = errCode; 15 | } 16 | 17 | public BusinessException(MsgContentStruct errEntity){ 18 | super(errEntity.Value()); 19 | 20 | this.errCode = errEntity.Key(); 21 | } 22 | 23 | public BusinessException(MsgContentStruct errEntity, Object... paras){ 24 | super(errEntity.FormatValue(paras)); 25 | 26 | this.errCode = errEntity.Key(); 27 | } 28 | 29 | public BusinessException(String errCode, String errMsg, Object data){ 30 | super(errMsg); 31 | this.errCode = errCode; 32 | this.data = data; 33 | } 34 | 35 | public String getErrCode() { 36 | return errCode; 37 | } 38 | 39 | public void setErrCode(String errCode) { 40 | this.errCode = errCode; 41 | } 42 | 43 | public Object getData() { 44 | return data; 45 | } 46 | 47 | public void setData(Object data) { 48 | this.data = data; 49 | } 50 | } -------------------------------------------------------------------------------- /src/main/resources/mapper/importutil/ErpStudentExcelMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | delete from erp_student_excel 20 | where id in 21 | 22 | #{erpStudentExcel.id} 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/rbac/ErpRoleMenu.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.rbac; 2 | import javax.persistence.*; 3 | import java.io.Serializable; 4 | import javax.validation.constraints.NotNull; 5 | import org.hibernate.validator.constraints.Length; 6 | import com.chenyanwu.erp.erpframework.entity.BaseEntity; 7 | 8 | 9 | /** 10 | *

11 | * 12 | * 13 | * 14 | *

15 | * 16 | * @author chenyanwu 17 | * @date 2019-02-27 17:04:18 18 | * @version 19 | */ 20 | @Table(name = "erp_role_menu") 21 | public class ErpRoleMenu implements Serializable { 22 | 23 | /** 24 | * 角色ID 25 | */ 26 | @Length(max=32,message="角色ID 长度不能超过32") 27 | @Column(name = "role_id") 28 | private String roleId; 29 | /** 30 | * 菜单ID 31 | */ 32 | @Length(max=32,message="菜单ID 长度不能超过32") 33 | @Column(name = "menu_id") 34 | private String menuId; 35 | 36 | 37 | public String getRoleId() { 38 | return roleId; 39 | } 40 | 41 | public void setRoleId(String roleId) { 42 | this.roleId = roleId; 43 | } 44 | 45 | 46 | public String getMenuId() { 47 | return menuId; 48 | } 49 | 50 | public void setMenuId(String menuId) { 51 | this.menuId = menuId; 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/rbac/ErpRoleUser.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.rbac; 2 | import javax.persistence.*; 3 | import java.io.Serializable; 4 | import javax.validation.constraints.NotNull; 5 | import org.hibernate.validator.constraints.Length; 6 | import com.chenyanwu.erp.erpframework.entity.BaseEntity; 7 | 8 | 9 | /** 10 | *

11 | * 12 | * 13 | * 14 | *

15 | * 16 | * @author chenyanwu 17 | * @date 2019-02-27 17:28:29 18 | * @version 19 | */ 20 | @Table(name = "erp_role_user") 21 | public class ErpRoleUser implements Serializable { 22 | 23 | /** 24 | * 角色ID 25 | */ 26 | @Length(max=32,message="角色ID 长度不能超过32") 27 | @Column(name = "role_id") 28 | private String roleId; 29 | /** 30 | * 用户ID 31 | */ 32 | @Length(max=32,message="用户ID 长度不能超过32") 33 | @Column(name = "user_id") 34 | private String userId; 35 | 36 | 37 | public String getRoleId() { 38 | return roleId; 39 | } 40 | 41 | public void setRoleId(String roleId) { 42 | this.roleId = roleId; 43 | } 44 | 45 | 46 | public String getUserId() { 47 | return userId; 48 | } 49 | 50 | public void setUserId(String userId) { 51 | this.userId = userId; 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/rbac/ErpRole.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity.rbac; 2 | import javax.persistence.*; 3 | import java.io.Serializable; 4 | import javax.validation.constraints.NotNull; 5 | import org.hibernate.validator.constraints.Length; 6 | import com.chenyanwu.erp.erpframework.entity.BaseEntity; 7 | import java.util.Date; 8 | 9 | 10 | /** 11 | *

12 | * 13 | * 14 | * 15 | *

16 | * 17 | * @author chenyanwu 18 | * @date 2019-02-21 17:39:55 19 | * @version 20 | */ 21 | @Table(name = "erp_role") 22 | public class ErpRole extends BaseEntity implements Serializable { 23 | 24 | /** 25 | * 角色名称 26 | */ 27 | @Length(max=40,message="角色名称 长度不能超过40") 28 | @Column(name = "name") 29 | private String name; 30 | /** 31 | * 备注 32 | */ 33 | @Length(max=255,message="备注 长度不能超过255") 34 | @Column(name = "comment") 35 | private String comment; 36 | 37 | 38 | public String getName() { 39 | return name; 40 | } 41 | 42 | public void setName(String name) { 43 | this.name = name; 44 | } 45 | 46 | 47 | public String getComment() { 48 | return comment; 49 | } 50 | 51 | public void setComment(String comment) { 52 | this.comment = comment; 53 | } 54 | 55 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/log/ErpLogServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.log; 2 | 3 | import com.chenyanwu.erp.erpframework.annotation.Log; 4 | import com.chenyanwu.erp.erpframework.entity.log.ErpLog; 5 | import com.chenyanwu.erp.erpframework.dao.log.ErpLogMapper; 6 | import com.chenyanwu.erp.erpframework.service.log.ErpLogService; 7 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 8 | import org.springframework.stereotype.Service; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | *

15 | * 服务实现类 16 | *

17 | * 18 | * @author chenyanwu 19 | * @date 2019-05-06 15:29:27 20 | */ 21 | @Service 22 | public class ErpLogServiceImpl extends BaseServiceImpl 23 | implements ErpLogService { 24 | 25 | @Autowired 26 | private ErpLogMapper erplogMapper; 27 | 28 | @Autowired 29 | public void setMapper() { 30 | super.setMapper(erplogMapper); 31 | } 32 | 33 | @Override 34 | public List selectByExample(Object var1) { 35 | return erplogMapper.selectByExample(var1); 36 | } 37 | 38 | @Override 39 | public Integer softDeleteByID(String id) { 40 | ErpLog erpLog = erplogMapper.selectByPrimaryKey(id); 41 | erpLog.setIsDeleted(1); 42 | return erplogMapper.updateByPrimaryKey(erpLog); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/exception/MsgContentStruct.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.exception; 2 | 3 | import com.chenyanwu.erp.erpframework.common.util.SpringContextHolder; 4 | import org.springframework.context.MessageSource; 5 | import org.springframework.context.i18n.LocaleContextHolder; 6 | 7 | import java.util.Locale; 8 | 9 | /** 10 | * Created by wd on 2016-7-20. 11 | */ 12 | public class MsgContentStruct { 13 | private String key; 14 | private String value ; 15 | 16 | private static MessageSource messageSource= SpringContextHolder.getBean(MessageSource.class); 17 | 18 | public MsgContentStruct(String key, String value){ 19 | this.key = key; 20 | this.value = value; 21 | } 22 | 23 | public String Key() { 24 | return key; 25 | } 26 | 27 | public String Value() { 28 | //默认采用的是acceptheaderLocaleResolver,检查http头的accept_language 29 | Locale locale1= LocaleContextHolder.getLocale(); 30 | if(locale1!=null){//如果指定了国际化 31 | this.value=messageSource.getMessage(key,null,locale1); 32 | } 33 | return this.value; 34 | } 35 | 36 | public String FormatValue(Object... paras){ 37 | //默认采用的是acceptheaderLocaleResolver,检查http头的accept_language 38 | Locale locale1= LocaleContextHolder.getLocale(); 39 | if(locale1!=null){//如果指定了国际化 40 | this.value=messageSource.getMessage(key,null,locale1); 41 | } 42 | 43 | return String.format(value, paras); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/resources/mapper/rbac/ErpRoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/resources/mapper/calendar/ErpCalendarTaskMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common.util; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/2/22 12:53 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class StringUtils { 10 | 11 | public static boolean isNullOrEmpty(String s) { 12 | return s == null || "".equals(s); 13 | } 14 | 15 | public static boolean isBlank(CharSequence cs) { 16 | int strLen; 17 | if (cs != null && (strLen = cs.length()) != 0) { 18 | for(int i = 0; i < strLen; ++i) { 19 | if (!Character.isWhitespace(cs.charAt(i))) { 20 | return false; 21 | } 22 | } 23 | 24 | return true; 25 | } else { 26 | return true; 27 | } 28 | } 29 | 30 | public static boolean isNotBlank(CharSequence cs) { 31 | return !isBlank(cs); 32 | } 33 | 34 | /** 35 | * 是否包含字符串 36 | * 37 | * @param str 验证字符串 38 | * @param strs 字符串组 39 | * @return 包含返回true 40 | */ 41 | public static boolean inStringIgnoreCase(String str, String... strs) { 42 | if (str != null && strs != null) { 43 | for (String s : strs) { 44 | if (str.equalsIgnoreCase(trim(s))) { 45 | return true; 46 | } 47 | } 48 | } 49 | return false; 50 | } 51 | 52 | /** 53 | * 去空格 54 | */ 55 | public static String trim(String str) { 56 | return (str == null ? "" : str.trim()); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/config/Config.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.config; 2 | 3 | import com.alibaba.druid.pool.DruidDataSource; 4 | import org.springframework.boot.web.servlet.MultipartConfigFactory; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.ComponentScan; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | import javax.servlet.MultipartConfigElement; 10 | import javax.sql.DataSource; 11 | 12 | /** 13 | * @ClassName Config 14 | * @Description TODO 15 | * @Author chenyanwu 16 | * @Date 2019/1/15 18:43 17 | * @Version 1.0 18 | */ 19 | @Configuration 20 | @ComponentScan(basePackages = {"com.chenyanwu.erp.erpframework"}) 21 | public class Config { 22 | // @Bean 23 | // public DataSource dataSource() { 24 | // DruidDataSource druidDataSource = new DruidDataSource(); 25 | // druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); 26 | // druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/erp-framework?useUnicode=true&characterEncoding=utf8"); 27 | // druidDataSource.setUsername("root"); 28 | // druidDataSource.setPassword("mysql"); 29 | // return druidDataSource; 30 | // } 31 | 32 | @Bean 33 | public MultipartConfigElement multipartConfigElement() { 34 | MultipartConfigFactory factory = new MultipartConfigFactory(); 35 | // 单个数据大小 36 | factory.setMaxFileSize("102400KB"); 37 | /// 总上传数据大小 38 | factory.setMaxRequestSize("512000KB"); 39 | return factory.createMultipartConfig(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/resources/static/plugins/frame/js/fsButtonCommon.js: -------------------------------------------------------------------------------- 1 | /* 2 | * fsLayui - A Front-end Rapid Development Framework. 3 | * Copyright (C) 2017-2019 wueasy.com 4 | 5 | * This program is free software: you can redistribute it and/or modify 6 | * it under the terms of the GNU Affero General Public License as published 7 | * by the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Affero General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Affero General Public License 16 | * along with this program. If not, see . 17 | */ 18 | /** 19 | * 按钮拓展配置 20 | * @author: fallsea 21 | * @version 2.3.0 22 | */ 23 | layui.define(['fsConfig'], function (exports) { 24 | 25 | var fsConfig = layui.fsConfig, 26 | statusName = $.result(fsConfig,"global.result.statusName","errorNo"), 27 | msgName = $.result(fsConfig,"global.result.msgName","errorInfo"), 28 | dataName = $.result(fsConfig,"global.result.dataName","results.data"), 29 | successNo = $.result(fsConfig,"global.result.successNo","0"), 30 | FsButtonCommon = function (){ 31 | 32 | }; 33 | 34 | 35 | FsButtonCommon.prototype.test = function(elem,data,datagrid,fsCommon){ 36 | alert("测试自定义按钮"+JSON.stringify(data)); 37 | } 38 | 39 | var fsButtonCommon = new FsButtonCommon(); 40 | exports('fsButtonCommon', fsButtonCommon); 41 | }); 42 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/importutil/ErpSFamilyMemberServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.importutil.ErpSFamilyMember; 4 | import com.chenyanwu.erp.erpframework.dao.importutil.ErpSFamilyMemberMapper; 5 | import com.chenyanwu.erp.erpframework.service.importutil.ErpSFamilyMemberService; 6 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import tk.mybatis.mapper.entity.Example; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | *

15 | * 服务实现类 16 | *

17 | * 18 | * @author chenyanwu 19 | * @date 2019-04-29 11:37:43 20 | */ 21 | @Service 22 | public class ErpSFamilyMemberServiceImpl extends BaseServiceImpl 23 | implements ErpSFamilyMemberService { 24 | 25 | @Autowired 26 | private ErpSFamilyMemberMapper erpsfamilymemberMapper; 27 | 28 | @Autowired 29 | public void setMapper() { 30 | super.setMapper(erpsfamilymemberMapper); 31 | } 32 | 33 | @Override 34 | public List findFamilyMemberByStuId(String stuId) { 35 | Example example = new Example(ErpSFamilyMember.class); 36 | example.createCriteria().andEqualTo("studId", stuId); 37 | return erpsfamilymemberMapper.selectByExample(example); 38 | } 39 | 40 | @Override 41 | public int insertList(List list) { 42 | return erpsfamilymemberMapper.insertList(list); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/codegenerator/model/DictItem.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common.codegenerator.model; 2 | 3 | /** 4 | * @ClassName DictItem 5 | * @Description TODO 6 | * @Author chenyanwu 7 | * @Date 2019/1/14 17:22 8 | * @Version 1.0 9 | */ 10 | public class DictItem { 11 | private String dictId; 12 | private String dictCode; 13 | private String dictText; 14 | private int itemSort; 15 | private String itemText; 16 | private String itemValue; 17 | 18 | public String getDictId() { 19 | return dictId; 20 | } 21 | 22 | public void setDictId(String dictId) { 23 | this.dictId = dictId; 24 | } 25 | 26 | public String getDictCode() { 27 | return dictCode; 28 | } 29 | 30 | public void setDictCode(String dictCode) { 31 | this.dictCode = dictCode; 32 | } 33 | 34 | public String getDictText() { 35 | return dictText; 36 | } 37 | 38 | public void setDictText(String dictText) { 39 | this.dictText = dictText; 40 | } 41 | 42 | public int getItemSort() { 43 | return itemSort; 44 | } 45 | 46 | public void setItemSort(int itemSort) { 47 | this.itemSort = itemSort; 48 | } 49 | 50 | public String getItemText() { 51 | return itemText; 52 | } 53 | 54 | public void setItemText(String itemText) { 55 | this.itemText = itemText; 56 | } 57 | 58 | public String getItemValue() { 59 | return itemValue; 60 | } 61 | 62 | public void setItemValue(String itemValue) { 63 | this.itemValue = itemValue; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/codegenerator/core/BeanUtils.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common.codegenerator.core; 2 | 3 | import java.lang.reflect.Field; 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | 7 | /** 8 | * @ClassName BeanUtils 9 | * @Description TODO 10 | * @Author chenyanwu 11 | * @Date 2019/1/15 9:37 12 | * @Version 1.0 13 | */ 14 | public class BeanUtils { 15 | 16 | public static Map getValueMap(Object obj) { 17 | 18 | Map map = new HashMap(); 19 | // System.out.println(obj.getClass()); 20 | // 获取f对象对应类中的所有属性域 21 | Field[] fields = obj.getClass().getDeclaredFields(); 22 | for (int i = 0, len = fields.length; i < len; i++) { 23 | String varName = fields[i].getName(); 24 | try { 25 | // 获取原来的访问控制权限 26 | boolean accessFlag = fields[i].isAccessible(); 27 | // 修改访问控制权限 28 | fields[i].setAccessible(true); 29 | // 获取在对象f中属性fields[i]对应的对象中的变量 30 | Object o = fields[i].get(obj); 31 | if (o != null) { 32 | map.put(varName, o); 33 | } 34 | // System.out.println("传入的对象中包含一个如下的变量:" + varName + " = " + o); 35 | // 恢复访问控制权限 36 | fields[i].setAccessible(accessFlag); 37 | } catch (IllegalArgumentException ex) { 38 | ex.printStackTrace(); 39 | } catch (IllegalAccessException ex) { 40 | ex.printStackTrace(); 41 | } 42 | } 43 | return map; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/resources/static/fullcalendar/moment/main.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | FullCalendar Moment Plugin v4.1.0 3 | Docs & License: https://fullcalendar.io/ 4 | (c) 2019 Adam Shaw 5 | */ 6 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("moment"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","moment","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarMoment={},e.moment,e.FullCalendar))}(this,function(e,t,n){"use strict";function r(e,t){if(!(t instanceof n.Calendar))throw new Error("must supply a Calendar instance");return u(e,t.dateEnv.timeZone,null,t.dateEnv.locale.codes[0])}function a(e){return t.duration(e)}function o(e,t){var n=i(e);if(t.end){var r=u(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),a=u(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]);return d(n,l(r),l(a),t.separator)}return u(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(n.whole)}function l(e){return function(t){return t?e.format(t):""}}function u(e,n,r,a){var o;return"local"===n?o=t(e):"UTC"===n?o=t.utc(e):t.tz?o=t.tz(e,n):(o=t.utc(e),null!=r&&o.utcOffset(r)),o.locale(a),o}function i(e){var t=e.match(/^(.*?)\{(.*)\}(.*)$/);if(t){var n=i(t[2]);return{head:t[1],middle:n,tail:t[3],whole:t[1]+n.whole+t[3]}}return{head:null,middle:null,tail:null,whole:e}}function d(e,t,n,r){if(e.middle){var a=t(e.head),o=d(e.middle,t,n,r),l=t(e.tail),u=n(e.head),i=d(e.middle,t,n,r),f=n(e.tail);if(a===u&&l===f)return a+(o===i?o:o+r+i)+l}return t(e.whole)+r+n(e.whole)}t=t&&t.hasOwnProperty("default")?t.default:t;var f=n.createPlugin({cmdFormatter:o});e.default=f,e.toDuration=a,e.toMoment=r,Object.defineProperty(e,"__esModule",{value:!0})}); -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/tagsinput/jquery.tagsinput-revisited.min.css: -------------------------------------------------------------------------------- 1 | .tagsinput,.tagsinput *{box-sizing:border-box}.tagsinput{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;background:#fff;font-family:sans-serif;font-size:14px;line-height:20px;color:#556270;padding:5px 5px 0;border:1px solid #e6e6e6;border-radius:2px}.tagsinput.focus{border-color:#ccc}.tagsinput .tag{position:relative;background:#556270;display:block;max-width:100%;word-wrap:break-word;color:#fff;padding:5px 30px 5px 5px;border-radius:2px;margin:0 5px 5px 0}.tagsinput .tag .tag-remove{position:absolute;background:0 0;display:block;width:30px;height:30px;top:0;right:0;cursor:pointer;text-decoration:none;text-align:center;color:#ff6b6b;line-height:30px;padding:0;border:0}.tagsinput .tag .tag-remove:after,.tagsinput .tag .tag-remove:before{background:#ff6b6b;position:absolute;display:block;width:10px;height:2px;top:14px;left:10px;content:''}.tagsinput .tag .tag-remove:before{-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg)}.tagsinput .tag .tag-remove:after{-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}.tagsinput div{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tagsinput div input{background:0 0;display:block;width:100%;font-size:14px;line-height:20px;padding:5px;border:0;margin:0 5px 5px 0}.tagsinput div input.error{color:#ff6b6b}.tagsinput div input::-ms-clear{display:none}.tagsinput div input::-webkit-input-placeholder{color:#ccc;opacity:1}.tagsinput div input:-moz-placeholder{color:#ccc;opacity:1}.tagsinput div input::-moz-placeholder{color:#ccc;opacity:1}.tagsinput div input:-ms-input-placeholder{color:#ccc;opacity:1} -------------------------------------------------------------------------------- /src/main/java/template/beanTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${entityPackage}; 2 | import javax.persistence.*; 3 | import java.io.Serializable; 4 | import javax.validation.constraints.NotNull; 5 | import org.hibernate.validator.constraints.Length; 6 | import com.chenyanwu.erp.erpframework.entity.BaseEntity; 7 | #if (${hasDate}) 8 | import java.util.Date; 9 | #end 10 | 11 | #if (${hasBigdecimal}) 12 | 13 | import java.math.BigDecimal; 14 | #end 15 | 16 | /** 17 | *

18 | * 19 | *${remark} 20 | * 21 | *

22 | * 23 | * @author ${author} 24 | * @date ${dateTime} 25 | * @version 26 | */ 27 | @Table(name = "${tableName}") 28 | public class ${beanName} extends BaseEntity implements Serializable { 29 | 30 | #foreach ($item in $columns) 31 | #if (!${baseColumns.contains($item.lowerProperty)}) 32 | #if (${item.remark} && ${item.remark}!='' ) 33 | /** 34 | * ${item.remark} 35 | */ 36 | #end 37 | #if ( ${item.type} == "String" ) 38 | @Length(max=${item.maxLength},message="${item.remark} 长度不能超过${item.maxLength}") 39 | #end 40 | #if ( ${item.allowNull} == false ) 41 | @NotNull(message = "${item.column} not allow null") 42 | #end 43 | @Column(name = "${item.column}") 44 | private ${item.type} ${item.lowerProperty}; 45 | #end 46 | #end 47 | 48 | #foreach ($item in $columns) 49 | #if (!${baseColumns.contains($item.lowerProperty)}) 50 | 51 | public ${item.type} get${item.property}() { 52 | return ${item.lowerProperty}; 53 | } 54 | 55 | public void set${item.property}(${item.type} ${item.lowerProperty}) { 56 | this.${item.lowerProperty} = ${item.lowerProperty}; 57 | } 58 | 59 | #end 60 | #end 61 | } -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/config/CaptchaFormAuthenticationFilter.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.config; 2 | 3 | import org.apache.shiro.authc.AuthenticationToken; 4 | import org.apache.shiro.subject.Subject; 5 | import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; 6 | 7 | import javax.servlet.ServletRequest; 8 | import javax.servlet.ServletResponse; 9 | import javax.servlet.http.HttpServletRequest; 10 | import javax.servlet.http.HttpServletResponse; 11 | 12 | /** 13 | * @Auther: chenyanwu 14 | * @Date: 2019/3/10 00:42 15 | * @Description: 16 | * @Version 1.0 17 | */ 18 | public class CaptchaFormAuthenticationFilter extends FormAuthenticationFilter { 19 | /** 20 | * 覆盖默认实现,用sendRedirect直接跳出框架,以免造成js框架重复加载js出错。 21 | * 22 | * @param token 23 | * @param subject 24 | * @param request 25 | * @param response 26 | * @return 27 | * @throws Exception 28 | * @see FormAuthenticationFilter#onLoginSuccess(AuthenticationToken, org.apache.shiro.subject.Subject, ServletRequest, ServletResponse) 29 | */ 30 | @Override 31 | protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception { 32 | //issueSuccessRedirect(request, response); 33 | //we handled the success redirect directly, prevent the chain from continuing: 34 | HttpServletRequest httpServletRequest = (HttpServletRequest) request; 35 | HttpServletResponse httpServletResponse = (HttpServletResponse) response; 36 | httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + this.getSuccessUrl()); 37 | 38 | return true; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/common/util/DateConverter.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.common.util; 2 | 3 | import org.apache.commons.lang.StringUtils; 4 | import org.springframework.core.convert.converter.Converter; 5 | 6 | import java.text.SimpleDateFormat; 7 | import java.util.Date; 8 | 9 | /** 10 | * @Auther: chenyanwu 11 | * @Date: 2019/2/27 22:54 12 | * @Description: 13 | * @Version 1.0 14 | */ 15 | public class DateConverter implements Converter { 16 | private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; 17 | private static final String shortDateFormat = "yyyy-MM-dd"; 18 | 19 | /** 20 | * @see Converter#convert(Object) 21 | */ 22 | @Override 23 | public Date convert(String source) { 24 | if (StringUtils.isBlank(source)) { 25 | return null; 26 | } 27 | source = source.trim(); 28 | try { 29 | if (source.contains("-")) { 30 | SimpleDateFormat formatter; 31 | if (source.contains(":")) { 32 | formatter = new SimpleDateFormat(dateFormat); 33 | } else { 34 | formatter = new SimpleDateFormat(shortDateFormat); 35 | } 36 | Date dtDate = formatter.parse(source); 37 | return dtDate; 38 | } else if (source.matches("^\\d+$")) { 39 | Long lDate = new Long(source); 40 | return new Date(lDate); 41 | } 42 | } catch (Exception e) { 43 | throw new RuntimeException(String.format("parser %s to Date fail", source)); 44 | } 45 | throw new RuntimeException(String.format("parser %s to Date fail", source)); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/FastDFSFile.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity; 2 | 3 | /** 4 | * @Auther: chenyanwu 5 | * @Date: 2019/5/10 16:28 6 | * @Description: 7 | * @Version 1.0 8 | */ 9 | public class FastDFSFile { 10 | private String name; 11 | 12 | private byte[] content; 13 | 14 | private String ext; 15 | 16 | private String md5; 17 | 18 | private String author; 19 | 20 | public FastDFSFile(String name, byte[] content, String ext, String height, 21 | String width, String author) { 22 | super(); 23 | this.name = name; 24 | this.content = content; 25 | this.ext = ext; 26 | this.author = author; 27 | } 28 | 29 | public FastDFSFile(String name, byte[] content, String ext) { 30 | super(); 31 | this.name = name; 32 | this.content = content; 33 | this.ext = ext; 34 | 35 | } 36 | 37 | public String getName() { 38 | return name; 39 | } 40 | 41 | public void setName(String name) { 42 | this.name = name; 43 | } 44 | 45 | public byte[] getContent() { 46 | return content; 47 | } 48 | 49 | public void setContent(byte[] content) { 50 | this.content = content; 51 | } 52 | 53 | public String getExt() { 54 | return ext; 55 | } 56 | 57 | public void setExt(String ext) { 58 | this.ext = ext; 59 | } 60 | 61 | public String getMd5() { 62 | return md5; 63 | } 64 | 65 | public void setMd5(String md5) { 66 | this.md5 = md5; 67 | } 68 | 69 | public String getAuthor() { 70 | return author; 71 | } 72 | 73 | public void setAuthor(String author) { 74 | this.author = author; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # erp-framework 2 | 3 | erp-framework是一个基于在Springboot框架上的开箱即用的管理平台,目的为了简化构建平台的繁杂过程,让大家直接能够基于在此结构上直接开发或者扩展。 4 | 5 | **QQ交流群:1023992012** 6 | **登录用户/密码: admin/1** 7 | 8 | 1、代码更新日志 9 | 10 | **2019年1月15日** 11 | 主要完成了代码生成工具,目的是完成基本的增删改查功能,无需重复复制代码 12 | 13 | **2019年2月3日** 14 | 调整对应的代码功能,使用Mybatis-Plus实现代码的生成功能,同时实现权限功能,优化Swagger代码独立于一个module中。 15 | 16 | **2019年3月6日** 17 | 重新调整框架的目录结构,实现权限管理功能界面的开发 18 | 19 | **2019年4月4日** 20 | 集成shiro,实现用户登录权限管理 21 | 22 | **2019年4月26日~2019年4月28日** 23 | 使用fork/join来实现数据的导入功能 24 | 25 | **2019年5月5日~2019年5月13日** 26 | 实现pdf预览,基于Webupload和FastDFS的文件上传 27 | 28 | 2、技术选型 29 | 30 | 后端技术: 31 | 32 | 技术 | 名称 | 官网 33 | ------------ | ------------- | ------------- 34 | SpringBoot | 容器框架 | 35 | freemarker | 模板引擎 | 36 | velocity | 模板引擎 | 37 | tk.mybatis | ORM框架 | 38 | Mybatis-plus | ORM框架和代码生成 | 39 | Lombok | setter和getter | 40 | mysql-connector-java | 连接驱动 | 41 | druid | 数据库连接池 | 42 | pagehelper | 分页插件 | 43 | swagger2 | 接口测试框架 | https://swagger.io/ 44 | Jackson-databind | 对象与json相互转换 | 45 | Apache Shiro | 权限控制 | 46 | hutool | 工具类 | 47 | Shiro-redis | 缓存 | 48 | Easypoi | Excel导入导出工具 | 49 | Itextpdf | PDF预览 | 50 | FastDFS | 分布式文件系统 | 51 | 52 | 前端技术: 53 | 54 | 技术 | 名称 | 官网 55 | ------------ | ------------- | ------------- 56 | Layui | | 57 | Webuploader | 文件上传 | 58 | 59 | 3、目录结构 60 | 61 | ![Image](https://github.com/chyanwu/erp-framework/blob/master/src/main/resources/image/catalogue.png) 62 | 63 | 4、简单功能界面 64 | ![Image text](https://github.com/chyanwu/erp-framework/blob/master/0.png) 65 | ![Image text](https://github.com/chyanwu/erp-framework/blob/master/1.png) 66 | ![Image text](https://github.com/chyanwu/erp-framework/blob/master/2.png) 67 | ![Image text](https://github.com/chyanwu/erp-framework/blob/master/3.png) 68 | ![Image text](https://github.com/chyanwu/erp-framework/blob/master/4.png) 69 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/BaseServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl; 2 | 3 | import com.chenyanwu.erp.erpframework.service.BaseService; 4 | import org.springframework.transaction.annotation.Transactional; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @ClassName BaseServiceImpl 11 | * @Description TODO 12 | * @Author chenyanwu 13 | * @Date 2019/1/15 15:33 14 | * @Version 1.0 15 | */ 16 | public class BaseServiceImpl implements BaseService { 17 | 18 | protected Mapper mapper; 19 | 20 | public void setMapper(Mapper mapper) { 21 | this.mapper = mapper; 22 | } 23 | 24 | @Override 25 | @Transactional 26 | public int insertSelective(T t) { 27 | return mapper.insertSelective(t); 28 | } 29 | 30 | @Override 31 | @Transactional 32 | public int delete(T t) { 33 | return mapper.delete(t); 34 | } 35 | 36 | @Override 37 | @Transactional 38 | public int deleteByPrimaryKey(Id id) { 39 | return mapper.deleteByPrimaryKey(id); 40 | } 41 | 42 | @Override 43 | public int deleteByExample(Object o) { 44 | return mapper.deleteByExample(o); 45 | } 46 | 47 | 48 | @Override 49 | @Transactional 50 | public int updateByPrimaryKey(T t) { 51 | return mapper.updateByPrimaryKey(t); 52 | } 53 | 54 | @Override 55 | public int updateByPrimaryKeySelective(T t) { 56 | return mapper.updateByPrimaryKeySelective(t); 57 | } 58 | 59 | @Override 60 | public T selectByPrimaryKey(Id id) { 61 | return mapper.selectByPrimaryKey(id); 62 | } 63 | 64 | @Override 65 | public List selectAll() { 66 | return mapper.selectAll(); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/libs/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/importutil/ImportTask.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.importutil; 2 | 3 | import com.chenyanwu.erp.erpframework.common.Constants; 4 | import com.chenyanwu.erp.erpframework.common.util.SpringContextHolder; 5 | import com.chenyanwu.erp.erpframework.service.importutil.ImportTemplate; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Component; 8 | 9 | import java.util.List; 10 | import java.util.concurrent.RecursiveTask; 11 | 12 | /** 13 | * @Auther: chenyanwu 14 | * @Date: 2019/4/28 12:23 15 | * @Description: 16 | * @Version 1.0 17 | */ 18 | @Component 19 | public class ImportTask extends RecursiveTask { 20 | 21 | @Autowired 22 | private ImportTemplate importTemplate; 23 | 24 | private List list; 25 | private int fromIndex; 26 | private int toIndex; 27 | 28 | public ImportTask() { 29 | 30 | } 31 | 32 | public ImportTask(List list, int fromIndex, int toIndex) { 33 | this.list = list; 34 | this.fromIndex = fromIndex; 35 | this.toIndex = toIndex; 36 | } 37 | 38 | @Override 39 | protected Integer compute() { 40 | if(toIndex - fromIndex < Constants.THRESHOLD) { 41 | if(importTemplate == null) { 42 | importTemplate = SpringContextHolder.getBean("erpStudentServiceImpl"); 43 | } 44 | return (Integer) importTemplate.importDataReturn(list, fromIndex, toIndex); 45 | } else { 46 | int mid = (fromIndex + toIndex) / 2; 47 | ImportTask left = new ImportTask(list, fromIndex, mid); 48 | ImportTask right = new ImportTask(list, mid+1, toIndex); 49 | invokeAll(left, right); 50 | return left.join() + right.join(); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/entity/MySysUser.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.entity; 2 | 3 | import com.chenyanwu.erp.erpframework.common.util.JsonUtil; 4 | import com.chenyanwu.erp.erpframework.config.MyShiroRealm; 5 | import org.apache.shiro.SecurityUtils; 6 | 7 | /** 8 | * @Auther: chenyanwu 9 | * @Date: 2019/3/8 16:54 10 | * @Description: 11 | * @Version 1.0 12 | */ 13 | public class MySysUser { 14 | /** 15 | * 取出Shiro中的当前用户LoginName. 16 | */ 17 | public static String icon() { 18 | return ShiroUser().getIcon(); 19 | } 20 | 21 | public static String id() { 22 | return ShiroUser().getId(); 23 | } 24 | 25 | public static String loginName() { 26 | return ShiroUser().getLoginName(); 27 | } 28 | 29 | public static String name(){ 30 | return ShiroUser().getName(); 31 | } 32 | 33 | public static MyShiroRealm.ShiroUser ShiroUser() { 34 | MyShiroRealm.ShiroUser user= (MyShiroRealm.ShiroUser) SecurityUtils.getSubject().getPrincipal(); 35 | return user; 36 | 37 | /** 38 | * 这个方式解决了拦截时候,从SecurityUtils.getSubject().getPrincipal()获取的对象为null,而强行转换而报错,但是返回的数据导致拦截器return false,而不能继续执行 39 | * 目前验证码显示不出来,从而问题依旧没有解决 40 | */ 41 | // Object obj = SecurityUtils.getSubject().getPrincipal(); 42 | // MyShiroRealm.ShiroUser user = new MyShiroRealm.ShiroUser(); 43 | // if(obj==null){ 44 | // return new MyShiroRealm.ShiroUser(); 45 | // } 46 | // 47 | // if(obj instanceof MyShiroRealm.ShiroUser) { 48 | // user = (MyShiroRealm.ShiroUser) obj; 49 | // } else { 50 | // System.out.print(obj.getClass()+"1111"); 51 | // user = JsonUtil.json2Bean(JsonUtil.bean2Json(obj), MyShiroRealm.ShiroUser.class); 52 | // } 53 | // return user; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/chenyanwu/erp/erpframework/service/impl/rbac/ErpMenuServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.chenyanwu.erp.erpframework.service.impl.rbac; 2 | 3 | import com.chenyanwu.erp.erpframework.entity.dtree.DtreeResponse; 4 | import com.chenyanwu.erp.erpframework.entity.rbac.ErpMenu; 5 | import com.chenyanwu.erp.erpframework.dao.rbac.ErpMenuMapper; 6 | import com.chenyanwu.erp.erpframework.entity.vo.ShowMenu; 7 | import com.chenyanwu.erp.erpframework.service.dtree.DtreeService; 8 | import com.chenyanwu.erp.erpframework.service.rbac.ErpMenuService; 9 | import com.chenyanwu.erp.erpframework.service.impl.BaseServiceImpl; 10 | import org.springframework.stereotype.Service; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | 13 | import net.sf.json.JSONObject; 14 | 15 | import java.util.HashMap; 16 | import java.util.List; 17 | import java.util.Map; 18 | 19 | /** 20 | *

21 | * 服务实现类 22 | *

23 | * 24 | * @author chenyanwu 25 | * @date 2019-02-27 11:15:03 26 | */ 27 | @Service 28 | public class ErpMenuServiceImpl extends BaseServiceImpl 29 | implements ErpMenuService { 30 | 31 | @Autowired 32 | private ErpMenuMapper erpmenuMapper; 33 | 34 | @Autowired 35 | private DtreeService dtreeService; 36 | 37 | @Autowired 38 | public void setMapper() { 39 | super.setMapper(erpmenuMapper); 40 | } 41 | 42 | @Override 43 | public String getTreeMenuList(String roleId) { 44 | DtreeResponse response = dtreeService.getMenuDtreeResponse(roleId); 45 | JSONObject obj = JSONObject.fromObject(response); 46 | return obj.toString(); 47 | } 48 | 49 | @Override 50 | public List getShowMenuByUser(String id) { 51 | Map map = new HashMap(); 52 | map.put("userId", id); 53 | map.put("parentId", "0"); 54 | return erpmenuMapper.selectShowMenuByUser(map); 55 | } 56 | } 57 | --------------------------------------------------------------------------------