From 47568408e20d3b3b0a5e330f5a67eecdc8a9fc20 Mon Sep 17 00:00:00 2001 From: lisang <1186733841@qq.com> Date: Sun, 7 Apr 2024 23:46:38 +0800 Subject: [PATCH] 0407 --- README.md | 6 - .../src/main/resources/application-druid.yml | 4 +- mes-admin/src/main/resources/application.yml | 2 +- mes-ui/.editorconfig | 22 - mes-ui/.env.development | 11 - mes-ui/.env.production | 8 - mes-ui/.env.staging | 10 - mes-ui/.eslintignore | 10 - mes-ui/.eslintrc.js | 199 - mes-ui/.gitignore | 23 - mes-ui/README.md | 24 - mes-ui/babel.config.js | 13 - mes-ui/bin/build.bat | 12 - mes-ui/bin/package.bat | 12 - mes-ui/bin/run-web.bat | 12 - mes-ui/build/index.js | 35 - mes-ui/package.json | 92 - mes-ui/public/favicon.ico | Bin 43601 -> 0 bytes mes-ui/public/html/ie.html | 46 - mes-ui/public/index.html | 209 - mes-ui/public/robots.txt | 2 - mes-ui/src/App.vue | 28 - mes-ui/src/api/login.js | 59 - mes-ui/src/api/menu.js | 9 - mes-ui/src/api/mes/barcode/barcodeRecord.js | 44 - mes-ui/src/api/mes/barcode/materialSn.js | 44 - mes-ui/src/api/mes/common/sysCodeRule.js | 44 - mes-ui/src/api/mes/common/sysUserStation.js | 44 - mes-ui/src/api/mes/equipment/equipment.js | 55 - .../src/api/mes/equipment/inspectionItem.js | 44 - mes-ui/src/api/mes/equipment/repairOrder.js | 44 - mes-ui/src/api/mes/finance/payroll.js | 61 - mes-ui/src/api/mes/finance/pieceWagePlan.js | 53 - mes-ui/src/api/mes/index.js | 37 - .../mes/integration/integrateDataSource.js | 53 - .../src/api/mes/integration/integratePlan.js | 53 - mes-ui/src/api/mes/masterdata/bom.js | 44 - mes-ui/src/api/mes/masterdata/customer.js | 44 - mes-ui/src/api/mes/masterdata/material.js | 44 - .../src/api/mes/masterdata/materialClass.js | 44 - mes-ui/src/api/mes/masterdata/station.js | 44 - mes-ui/src/api/mes/masterdata/unit.js | 44 - mes-ui/src/api/mes/masterdata/unitChange.js | 44 - mes-ui/src/api/mes/masterdata/workshop.js | 44 - mes-ui/src/api/mes/production/process.js | 44 - mes-ui/src/api/mes/production/report.js | 53 - mes-ui/src/api/mes/production/route.js | 44 - mes-ui/src/api/mes/production/workOrder.js | 80 - mes-ui/src/api/mes/quality/qualityLevel.js | 44 - mes-ui/src/api/mes/quality/reason.js | 44 - mes-ui/src/api/mes/quality/reportQuality.js | 44 - mes-ui/src/api/mes/sale/saleOrder.js | 44 - mes-ui/src/api/mes/system/carousel.js | 44 - mes-ui/src/api/mes/warehouse/inventory.js | 44 - .../src/api/mes/warehouse/manufactureInto.js | 44 - mes-ui/src/api/mes/warehouse/proPick.js | 44 - mes-ui/src/api/mes/warehouse/warehouse.js | 44 - mes-ui/src/api/monitor/cache.js | 57 - mes-ui/src/api/monitor/job.js | 71 - mes-ui/src/api/monitor/jobLog.js | 26 - mes-ui/src/api/monitor/logininfor.js | 34 - mes-ui/src/api/monitor/online.js | 18 - mes-ui/src/api/monitor/operlog.js | 26 - mes-ui/src/api/monitor/server.js | 9 - mes-ui/src/api/system/config.js | 60 - mes-ui/src/api/system/dept.js | 52 - mes-ui/src/api/system/dict/data.js | 52 - mes-ui/src/api/system/dict/type.js | 60 - mes-ui/src/api/system/menu.js | 60 - mes-ui/src/api/system/notice.js | 44 - mes-ui/src/api/system/post.js | 44 - mes-ui/src/api/system/role.js | 119 - mes-ui/src/api/system/user.js | 135 - mes-ui/src/api/tool/gen.js | 76 - mes-ui/src/assets/401_images/401.gif | Bin 164227 -> 0 bytes mes-ui/src/assets/404_images/404.png | Bin 98071 -> 0 bytes mes-ui/src/assets/404_images/404_cloud.png | Bin 4766 -> 0 bytes mes-ui/src/assets/icons/index.js | 9 - mes-ui/src/assets/icons/svg/404.svg | 1 - mes-ui/src/assets/icons/svg/bug.svg | 1 - mes-ui/src/assets/icons/svg/build.svg | 1 - mes-ui/src/assets/icons/svg/button.svg | 1 - mes-ui/src/assets/icons/svg/cascader.svg | 1 - mes-ui/src/assets/icons/svg/chart.svg | 1 - mes-ui/src/assets/icons/svg/checkbox.svg | 1 - mes-ui/src/assets/icons/svg/clipboard.svg | 1 - mes-ui/src/assets/icons/svg/code.svg | 1 - mes-ui/src/assets/icons/svg/color.svg | 1 - mes-ui/src/assets/icons/svg/component.svg | 1 - mes-ui/src/assets/icons/svg/dashboard.svg | 1 - mes-ui/src/assets/icons/svg/date-range.svg | 1 - mes-ui/src/assets/icons/svg/date.svg | 1 - mes-ui/src/assets/icons/svg/dict.svg | 1 - mes-ui/src/assets/icons/svg/documentation.svg | 1 - mes-ui/src/assets/icons/svg/download.svg | 1 - mes-ui/src/assets/icons/svg/drag.svg | 1 - mes-ui/src/assets/icons/svg/druid.svg | 1 - mes-ui/src/assets/icons/svg/edit.svg | 1 - mes-ui/src/assets/icons/svg/education.svg | 1 - mes-ui/src/assets/icons/svg/email.svg | 1 - mes-ui/src/assets/icons/svg/example.svg | 1 - mes-ui/src/assets/icons/svg/excel.svg | 1 - .../src/assets/icons/svg/exit-fullscreen.svg | 1 - mes-ui/src/assets/icons/svg/eye-open.svg | 1 - mes-ui/src/assets/icons/svg/eye.svg | 1 - mes-ui/src/assets/icons/svg/form.svg | 1 - mes-ui/src/assets/icons/svg/fullscreen.svg | 1 - mes-ui/src/assets/icons/svg/github.svg | 1 - mes-ui/src/assets/icons/svg/guide.svg | 1 - mes-ui/src/assets/icons/svg/icon.svg | 1 - mes-ui/src/assets/icons/svg/input.svg | 1 - mes-ui/src/assets/icons/svg/international.svg | 1 - mes-ui/src/assets/icons/svg/job.svg | 1 - mes-ui/src/assets/icons/svg/language.svg | 1 - mes-ui/src/assets/icons/svg/link.svg | 1 - mes-ui/src/assets/icons/svg/list.svg | 1 - mes-ui/src/assets/icons/svg/lock.svg | 1 - mes-ui/src/assets/icons/svg/log.svg | 1 - mes-ui/src/assets/icons/svg/logininfor.svg | 1 - mes-ui/src/assets/icons/svg/message.svg | 1 - mes-ui/src/assets/icons/svg/money.svg | 1 - mes-ui/src/assets/icons/svg/monitor.svg | 2 - mes-ui/src/assets/icons/svg/nested.svg | 1 - mes-ui/src/assets/icons/svg/number.svg | 1 - mes-ui/src/assets/icons/svg/online.svg | 1 - mes-ui/src/assets/icons/svg/password.svg | 1 - mes-ui/src/assets/icons/svg/pdf.svg | 1 - mes-ui/src/assets/icons/svg/people.svg | 1 - mes-ui/src/assets/icons/svg/peoples.svg | 1 - mes-ui/src/assets/icons/svg/phone.svg | 1 - mes-ui/src/assets/icons/svg/post.svg | 1 - mes-ui/src/assets/icons/svg/qq.svg | 1 - mes-ui/src/assets/icons/svg/question.svg | 1 - mes-ui/src/assets/icons/svg/radio.svg | 1 - mes-ui/src/assets/icons/svg/rate.svg | 1 - mes-ui/src/assets/icons/svg/redis-list.svg | 2 - mes-ui/src/assets/icons/svg/redis.svg | 1 - mes-ui/src/assets/icons/svg/row.svg | 1 - mes-ui/src/assets/icons/svg/search.svg | 1 - mes-ui/src/assets/icons/svg/select.svg | 1 - mes-ui/src/assets/icons/svg/server.svg | 1 - mes-ui/src/assets/icons/svg/shopping.svg | 1 - mes-ui/src/assets/icons/svg/size.svg | 1 - mes-ui/src/assets/icons/svg/skill.svg | 1 - mes-ui/src/assets/icons/svg/slider.svg | 1 - mes-ui/src/assets/icons/svg/star.svg | 1 - mes-ui/src/assets/icons/svg/swagger.svg | 1 - mes-ui/src/assets/icons/svg/switch.svg | 1 - mes-ui/src/assets/icons/svg/system.svg | 2 - mes-ui/src/assets/icons/svg/tab.svg | 1 - mes-ui/src/assets/icons/svg/table.svg | 1 - mes-ui/src/assets/icons/svg/textarea.svg | 1 - mes-ui/src/assets/icons/svg/theme.svg | 1 - mes-ui/src/assets/icons/svg/time-range.svg | 1 - mes-ui/src/assets/icons/svg/time.svg | 1 - mes-ui/src/assets/icons/svg/tool.svg | 1 - mes-ui/src/assets/icons/svg/tree-table.svg | 1 - mes-ui/src/assets/icons/svg/tree.svg | 1 - mes-ui/src/assets/icons/svg/upload.svg | 1 - mes-ui/src/assets/icons/svg/user.svg | 1 - mes-ui/src/assets/icons/svg/validCode.svg | 1 - mes-ui/src/assets/icons/svg/wechat.svg | 1 - mes-ui/src/assets/icons/svg/zip.svg | 1 - mes-ui/src/assets/icons/svgo.yml | 22 - mes-ui/src/assets/images/daiji.jpg | Bin 15163 -> 0 bytes mes-ui/src/assets/images/dark.svg | 39 - mes-ui/src/assets/images/guzhang.jpg | Bin 15111 -> 0 bytes mes-ui/src/assets/images/light.svg | 39 - mes-ui/src/assets/images/login-background.jpg | Bin 5642 -> 0 bytes mes-ui/src/assets/images/profile.jpg | Bin 81131 -> 0 bytes mes-ui/src/assets/images/weikaiji.jpg | Bin 18372 -> 0 bytes mes-ui/src/assets/images/yunxing.jpg | Bin 14944 -> 0 bytes mes-ui/src/assets/logo/logo.png | Bin 78404 -> 0 bytes mes-ui/src/assets/styles/btn.scss | 99 - mes-ui/src/assets/styles/element-ui.scss | 92 - .../src/assets/styles/element-variables.scss | 31 - mes-ui/src/assets/styles/index.scss | 182 - mes-ui/src/assets/styles/jinzhong.scss | 8 - mes-ui/src/assets/styles/mixin.scss | 66 - mes-ui/src/assets/styles/ruoyi.scss | 277 - mes-ui/src/assets/styles/sidebar.scss | 227 - mes-ui/src/assets/styles/transition.scss | 49 - mes-ui/src/assets/styles/variables.scss | 54 - mes-ui/src/components/Breadcrumb/index.vue | 74 - mes-ui/src/components/Crontab/day.vue | 161 - mes-ui/src/components/Crontab/hour.vue | 114 - mes-ui/src/components/Crontab/index.vue | 430 - mes-ui/src/components/Crontab/min.vue | 116 - mes-ui/src/components/Crontab/month.vue | 114 - mes-ui/src/components/Crontab/result.vue | 559 - mes-ui/src/components/Crontab/second.vue | 117 - mes-ui/src/components/Crontab/week.vue | 202 - mes-ui/src/components/Crontab/year.vue | 131 - mes-ui/src/components/DictData/index.js | 49 - mes-ui/src/components/DictTag/index.vue | 92 - mes-ui/src/components/Editor/index.vue | 272 - mes-ui/src/components/FileUpload/index.vue | 215 - mes-ui/src/components/Hamburger/index.vue | 44 - mes-ui/src/components/HeaderSearch/index.vue | 189 - mes-ui/src/components/IconSelect/index.vue | 104 - .../src/components/IconSelect/requireIcons.js | 11 - mes-ui/src/components/ImagePreview/index.vue | 90 - mes-ui/src/components/ImageUpload/index.vue | 227 - mes-ui/src/components/Pagination/index.vue | 114 - mes-ui/src/components/PanThumb/index.vue | 142 - mes-ui/src/components/ParentView/index.vue | 3 - mes-ui/src/components/RightPanel/index.vue | 106 - mes-ui/src/components/RightToolbar/index.vue | 104 - mes-ui/src/components/RuoYi/Doc/index.vue | 21 - mes-ui/src/components/RuoYi/Git/index.vue | 21 - mes-ui/src/components/Screenfull/index.vue | 57 - mes-ui/src/components/SizeSelect/index.vue | 56 - mes-ui/src/components/SvgIcon/index.vue | 61 - mes-ui/src/components/ThemePicker/index.vue | 173 - mes-ui/src/components/TopNav/index.vue | 191 - mes-ui/src/components/iFrame/index.vue | 36 - mes-ui/src/components/mes/address.json | 11535 ---------------- mes-ui/src/components/mes/materialSelect.vue | 261 - .../src/components/mes/workOrderPreview.vue | 347 - mes-ui/src/directive/dialog/drag.js | 64 - mes-ui/src/directive/dialog/dragHeight.js | 34 - mes-ui/src/directive/dialog/dragWidth.js | 30 - mes-ui/src/directive/index.js | 23 - mes-ui/src/directive/module/clipboard.js | 54 - mes-ui/src/directive/permission/hasPermi.js | 28 - mes-ui/src/directive/permission/hasRole.js | 28 - mes-ui/src/layout/components/AppMain.vue | 75 - .../layout/components/IframeToggle/index.vue | 24 - .../src/layout/components/InnerLink/index.vue | 47 - mes-ui/src/layout/components/Navbar.vue | 200 - .../src/layout/components/Settings/index.vue | 260 - .../layout/components/Sidebar/FixiOSBug.js | 25 - mes-ui/src/layout/components/Sidebar/Item.vue | 33 - mes-ui/src/layout/components/Sidebar/Link.vue | 43 - mes-ui/src/layout/components/Sidebar/Logo.vue | 96 - .../layout/components/Sidebar/SidebarItem.vue | 100 - .../src/layout/components/Sidebar/index.vue | 57 - .../layout/components/TagsView/ScrollPane.vue | 94 - .../src/layout/components/TagsView/index.vue | 332 - mes-ui/src/layout/components/index.js | 5 - mes-ui/src/layout/index.vue | 111 - mes-ui/src/layout/mixin/ResizeHandler.js | 45 - mes-ui/src/main.js | 112 - mes-ui/src/permission.js | 56 - mes-ui/src/plugins/auth.js | 60 - mes-ui/src/plugins/cache.js | 77 - mes-ui/src/plugins/download.js | 72 - mes-ui/src/plugins/index.js | 20 - mes-ui/src/plugins/modal.js | 83 - mes-ui/src/plugins/tab.js | 71 - mes-ui/src/router/index.js | 351 - mes-ui/src/settings.js | 44 - mes-ui/src/store/getters.js | 19 - mes-ui/src/store/index.js | 25 - mes-ui/src/store/modules/app.js | 66 - mes-ui/src/store/modules/dict.js | 50 - mes-ui/src/store/modules/permission.js | 133 - mes-ui/src/store/modules/settings.js | 42 - mes-ui/src/store/modules/tagsView.js | 228 - mes-ui/src/store/modules/user.js | 96 - mes-ui/src/utils/auth.js | 15 - mes-ui/src/utils/dict/Dict.js | 82 - mes-ui/src/utils/dict/DictConverter.js | 17 - mes-ui/src/utils/dict/DictData.js | 13 - mes-ui/src/utils/dict/DictMeta.js | 38 - mes-ui/src/utils/dict/DictOptions.js | 51 - mes-ui/src/utils/dict/index.js | 33 - mes-ui/src/utils/errorCode.js | 6 - mes-ui/src/utils/generator/config.js | 438 - mes-ui/src/utils/generator/css.js | 18 - mes-ui/src/utils/generator/drawingDefault.js | 29 - mes-ui/src/utils/generator/html.js | 359 - mes-ui/src/utils/generator/icon.json | 1 - mes-ui/src/utils/generator/js.js | 236 - mes-ui/src/utils/generator/render.js | 126 - mes-ui/src/utils/index.js | 390 - mes-ui/src/utils/jinzhong.js | 20 - mes-ui/src/utils/jsencrypt.js | 30 - mes-ui/src/utils/permission.js | 51 - mes-ui/src/utils/request.js | 146 - mes-ui/src/utils/ruoyi.js | 233 - mes-ui/src/utils/scroll-to.js | 58 - mes-ui/src/utils/validate.js | 83 - .../views/components/icons/element-icons.js | 3 - mes-ui/src/views/components/icons/index.vue | 87 - .../src/views/components/icons/svg-icons.js | 10 - mes-ui/src/views/dashboard/BarChart.vue | 102 - mes-ui/src/views/dashboard/LineChart.vue | 135 - mes-ui/src/views/dashboard/PanelGroup.vue | 181 - mes-ui/src/views/dashboard/PieChart.vue | 79 - mes-ui/src/views/dashboard/RaddarChart.vue | 116 - mes-ui/src/views/dashboard/mixins/resize.js | 56 - mes-ui/src/views/error/401.vue | 88 - mes-ui/src/views/error/404.vue | 233 - mes-ui/src/views/index.vue | 320 - mes-ui/src/views/index_v1.vue | 98 - mes-ui/src/views/login.vue | 221 - .../views/mes/barcode/barcodeRecord/index.vue | 326 - .../views/mes/barcode/materialSn/index.vue | 296 - .../views/mes/common/sysCodeRule/index.vue | 498 - .../views/mes/common/sysUserStation/index.vue | 339 - .../views/mes/equipment/equipment/index.vue | 444 - .../mes/equipment/inspectionItem/index.vue | 352 - .../views/mes/equipment/oeeGantt/ganttx.vue | 27 - .../views/mes/equipment/oeeGantt/index.vue | 329 - .../views/mes/equipment/repairOrder/index.vue | 664 - mes-ui/src/views/mes/finance/payroll/form.vue | 98 - .../src/views/mes/finance/payroll/index.vue | 431 - .../views/mes/finance/pieceWagePlan/index.vue | 443 - .../integration/integrateDataSource/index.vue | 558 - .../mes/integration/integratePlan/index.vue | 438 - mes-ui/src/views/mes/masterdata/bom/index.vue | 346 - .../views/mes/masterdata/customer/index.vue | 534 - .../views/mes/masterdata/material/index.vue | 525 - .../mes/masterdata/materialClass/index.vue | 265 - .../views/mes/masterdata/station/index.vue | 477 - .../src/views/mes/masterdata/unit/index.vue | 267 - .../views/mes/masterdata/unitChange/index.vue | 378 - .../views/mes/masterdata/workshop/index.vue | 307 - .../views/mes/production/process/index.vue | 381 - .../src/views/mes/production/report/form.vue | 463 - .../src/views/mes/production/report/index.vue | 403 - .../src/views/mes/production/route/index.vue | 561 - .../views/mes/production/workOrder/form.vue | 449 - .../views/mes/production/workOrder/index.vue | 503 - .../views/mes/quality/qualityLevel/index.vue | 320 - mes-ui/src/views/mes/quality/reason/index.vue | 347 - .../views/mes/quality/reportQuality/form.vue | 655 - .../views/mes/quality/reportQuality/index.vue | 443 - mes-ui/src/views/mes/sale/saleOrder/form.vue | 558 - mes-ui/src/views/mes/sale/saleOrder/index.vue | 351 - .../views/mes/warehouse/inventory/index.vue | 173 - .../mes/warehouse/manufactureInto/form.vue | 468 - .../mes/warehouse/manufactureInto/index.vue | 252 - .../src/views/mes/warehouse/proPick/form.vue | 494 - .../src/views/mes/warehouse/proPick/index.vue | 319 - .../views/mes/warehouse/warehouse/index.vue | 320 - mes-ui/src/views/monitor/cache/index.vue | 144 - mes-ui/src/views/monitor/cache/list.vue | 241 - mes-ui/src/views/monitor/druid/index.vue | 15 - mes-ui/src/views/monitor/job/index.vue | 513 - mes-ui/src/views/monitor/job/log.vue | 295 - mes-ui/src/views/monitor/logininfor/index.vue | 246 - mes-ui/src/views/monitor/online/index.vue | 122 - mes-ui/src/views/monitor/operlog/index.vue | 313 - mes-ui/src/views/monitor/server/index.vue | 207 - mes-ui/src/views/redirect.vue | 12 - mes-ui/src/views/register.vue | 209 - mes-ui/src/views/system/carousel/index.vue | 301 - mes-ui/src/views/system/config/index.vue | 343 - mes-ui/src/views/system/dept/index.vue | 340 - mes-ui/src/views/system/dict/data.vue | 402 - mes-ui/src/views/system/dict/index.vue | 347 - mes-ui/src/views/system/menu/index.vue | 452 - mes-ui/src/views/system/notice/index.vue | 312 - mes-ui/src/views/system/post/index.vue | 309 - mes-ui/src/views/system/role/authUser.vue | 199 - mes-ui/src/views/system/role/index.vue | 605 - mes-ui/src/views/system/role/selectUser.vue | 138 - mes-ui/src/views/system/user/authRole.vue | 117 - mes-ui/src/views/system/user/index.vue | 670 - .../src/views/system/user/profile/index.vue | 91 - .../views/system/user/profile/resetPwd.vue | 68 - .../views/system/user/profile/userAvatar.vue | 187 - .../views/system/user/profile/userInfo.vue | 75 - .../src/views/tool/build/CodeTypeDialog.vue | 106 - mes-ui/src/views/tool/build/DraggableItem.vue | 100 - mes-ui/src/views/tool/build/IconsDialog.vue | 123 - mes-ui/src/views/tool/build/RightPanel.vue | 946 -- .../src/views/tool/build/TreeNodeDialog.vue | 149 - mes-ui/src/views/tool/build/index.vue | 768 - mes-ui/src/views/tool/gen/basicInfoForm.vue | 60 - mes-ui/src/views/tool/gen/editTable.vue | 234 - mes-ui/src/views/tool/gen/genInfoForm.vue | 299 - mes-ui/src/views/tool/gen/importTable.vue | 120 - mes-ui/src/views/tool/gen/index.vue | 337 - mes-ui/src/views/tool/swagger/index.vue | 15 - mes-ui/vue.config.js | 136 - .../controller/BarcodeRecordController.java | 29 +- .../controller/MaterialSnController.java | 26 +- .../barcode/domain/BarcodeRecord.java | 6 +- .../barcode/domain/MaterialSn.java | 6 +- .../barcode/mapper/BarcodeRecordMapper.java | 5 +- .../barcode/mapper/MaterialSnMapper.java | 12 +- .../service/IBarcodeRecordService.java | 3 +- .../barcode/service/IMaterialSnService.java | 3 +- .../impl/BarcodeRecordServiceImpl.java | 19 +- .../service/impl/MaterialSnServiceImpl.java | 15 +- .../controller/SysCodeRuleController.java | 22 +- .../controller/SysUserStationController.java | 29 +- .../common/domain/SysCodeRule.java | 10 +- .../common/domain/SysCodeRuleEntry.java | 5 +- .../common/domain/SysFileInfo.java | 2 - .../common/domain/SysUserStation.java | 5 +- .../common/mapper/SqlCheckMapper.java | 2 - .../common/mapper/SysCodeRuleEntryMapper.java | 5 +- .../common/mapper/SysCodeRuleMapper.java | 6 +- .../common/mapper/SysFileInfoMapper.java | 2 +- .../common/mapper/SysUserStationMapper.java | 5 +- .../common/mqtt/MqttConsumerCallBack.java | 4 +- .../common/mqtt/MqttConsumerConfig.java | 8 +- .../common/mybatisplus/EasySqlInjector.java | 1 - .../mybatisplus/MyMetaObjectHandler.java | 2 +- .../common/service/ISysCodeRuleService.java | 4 +- .../service/ISysUserStationService.java | 3 +- .../service/impl/SysCodeRuleServiceImpl.java | 28 +- .../impl/SysUserStationServiceImpl.java | 24 +- .../sourceplan}/common/utils/MesDateUtil.java | 0 .../common/utils/SqlCheckUtil.java | 6 - .../controller/EquipmentController.java | 29 +- .../controller/InspectionItemController.java | 22 +- .../controller/RepairOrderController.java | 25 +- .../equipment/domain/Equipment.java | 6 +- .../equipment/domain/InspectionItem.java | 6 +- .../equipment/domain/RepairOrder.java | 12 +- .../equipment/domain/RepairOrderEntry.java | 6 +- .../equipment/mapper/EquipmentMapper.java | 11 +- .../mapper/InspectionItemMapper.java | 5 +- .../mapper/RepairOrderEntryMapper.java | 5 +- .../equipment/mapper/RepairOrderMapper.java | 6 +- .../equipment/service/IEquipmentService.java | 7 +- .../service/IInspectionItemService.java | 3 +- .../service/IRepairOrderService.java | 3 +- .../service/impl/EquipmentServiceImpl.java | 18 +- .../impl/InspectionItemServiceImpl.java | 15 +- .../service/impl/RepairOrderServiceImpl.java | 19 +- .../finance/controller/PayrollController.java | 21 +- .../controller/PieceWagePlanController.java | 22 +- .../sourceplan}/finance/domain/Payroll.java | 16 +- .../finance/domain/PieceWagePlan.java | 13 +- .../finance/mapper/PayrollMapper.java | 8 +- .../finance/mapper/PieceWagePlanMapper.java | 9 +- .../finance/service/IPayrollService.java | 5 +- .../service/IPieceWagePlanService.java | 3 +- .../service/impl/PayrollServiceImpl.java | 18 +- .../impl/PieceWagePlanServiceImpl.java | 15 +- .../IntegrateDataSourceController.java | 1 - .../controller/IntegratePlanController.java | 10 +- .../domain/InteDataSourceField.java | 0 .../integration/domain/IntePlanField.java | 0 .../domain/IntegrateDataSource.java | 0 .../integration/domain/IntegratePlan.java | 0 .../mapper/IntegrateDataSourceMapper.java | 0 .../mapper/IntegratePlanMapper.java | 0 .../service/IIntegrateDataSourceService.java | 0 .../service/IIntegratePlanService.java | 0 .../impl/IntegrateDataSourceServiceImpl.java | 0 .../impl/IntegratePlanServiceImpl.java | 0 .../masterdata/controller/BomController.java | 20 +- .../controller/CustomerController.java | 22 +- .../controller/MaterialClassController.java | 20 +- .../controller/MaterialController.java | 24 +- .../controller/StationController.java | 22 +- .../controller/UnitChangeController.java | 22 +- .../masterdata/controller/UnitController.java | 22 +- .../controller/WorkshopController.java | 24 +- .../sourceplan}/masterdata/domain/Bom.java | 10 +- .../masterdata/domain/Customer.java | 6 +- .../masterdata/domain/Material.java | 5 +- .../masterdata/domain/MaterialClass.java | 4 +- .../masterdata/domain/Station.java | 8 +- .../sourceplan}/masterdata/domain/Unit.java | 5 +- .../masterdata/domain/UnitChange.java | 8 +- .../masterdata/domain/Workshop.java | 6 +- .../masterdata/mapper/BomMapper.java | 9 +- .../masterdata/mapper/CustomerMapper.java | 4 +- .../mapper/MaterialClassMapper.java | 7 +- .../masterdata/mapper/MaterialMapper.java | 4 +- .../masterdata/mapper/StationMapper.java | 7 +- .../masterdata/mapper/UnitChangeMapper.java | 6 +- .../masterdata/mapper/UnitMapper.java | 5 +- .../masterdata/mapper/WorkshopMapper.java | 5 +- .../masterdata/service/IBomService.java | 4 +- .../masterdata/service/ICustomerService.java | 3 +- .../service/IMaterialClassService.java | 4 +- .../masterdata/service/IMaterialService.java | 4 +- .../masterdata/service/IStationService.java | 4 +- .../service/IUnitChangeService.java | 3 +- .../masterdata/service/IUnitService.java | 4 +- .../masterdata/service/IWorkshopService.java | 4 +- .../service/impl/BomServiceImpl.java | 16 +- .../service/impl/CustomerServiceImpl.java | 11 +- .../impl/MaterialClassServiceImpl.java | 10 +- .../service/impl/MaterialServiceImpl.java | 14 +- .../service/impl/StationServiceImpl.java | 10 +- .../service/impl/UnitChangeServiceImpl.java | 9 +- .../service/impl/UnitServiceImpl.java | 16 +- .../service/impl/WorkshopServiceImpl.java | 13 +- .../controller/ProcessController.java | 22 +- .../controller/ReportController.java | 22 +- .../controller/RouteController.java | 22 +- .../controller/WorkOrderController.java | 24 +- .../production/domain/Process.java | 9 +- .../sourceplan}/production/domain/Report.java | 17 +- .../sourceplan}/production/domain/Route.java | 10 +- .../production/domain/RouteProcess.java | 6 +- .../production/domain/WorkOrder.java | 15 +- .../production/domain/WorkOrderEntry.java | 7 +- .../production/mapper/ProcessMapper.java | 7 +- .../production/mapper/ReportMapper.java | 7 +- .../production/mapper/RouteMapper.java | 7 +- .../mapper/WorkOrderEntryMapper.java | 7 +- .../production/mapper/WorkOrderMapper.java | 13 +- .../production/service/IProcessService.java | 4 +- .../production/service/IReportService.java | 4 +- .../production/service/IRouteService.java | 4 +- .../production/service/IWorkOrderService.java | 4 +- .../service/impl/ProcessServiceImpl.java | 10 +- .../service/impl/ReportServiceImpl.java | 20 +- .../service/impl/RouteServiceImpl.java | 16 +- .../service/impl/WorkOrderServiceImpl.java | 22 +- .../controller/QualityLevelController.java | 22 +- .../quality/controller/ReasonController.java | 22 +- .../controller/ReportQualityController.java | 22 +- .../quality/domain/QualityLevel.java | 9 +- .../sourceplan}/quality/domain/Reason.java | 6 +- .../quality/domain/ReportQuality.java | 14 +- .../quality/domain/ReportQualityEntry.java | 0 .../quality/domain/ReportQualityReason.java | 0 .../quality/mapper/QualityLevelMapper.java | 7 +- .../quality/mapper/ReasonMapper.java | 7 +- .../mapper/ReportQualityEntryMapper.java | 5 +- .../quality/mapper/ReportQualityMapper.java | 5 +- .../mapper/ReportQualityReasonMapper.java | 4 +- .../quality/service/IQualityLevelService.java | 4 +- .../quality/service/IReasonService.java | 4 +- .../service/IReportQualityService.java | 3 +- .../service/impl/QualityLevelServiceImpl.java | 10 +- .../service/impl/ReasonServiceImpl.java | 10 +- .../impl/ReportQualityServiceImpl.java | 32 +- .../sale/controller/SalOrderController.java | 22 +- .../sourceplan}/sale/domain/SalOrder.java | 10 +- .../sale/domain/SalOrderEntry.java | 10 +- .../sale/mapper/SalOrderEntryMapper.java | 3 +- .../sale/mapper/SalOrderMapper.java | 8 +- .../sale/service/ISalOrderService.java | 3 +- .../service/impl/SalOrderServiceImpl.java | 24 +- .../controller/MobileWorkController.java | 7 +- .../controller/PcIndexController.java | 17 +- .../statement/mapper/MobileWorkMapper.java | 2 - .../statement/mapper/PcIndexMapper.java | 1 - .../statement/service/MobileWorkService.java | 1 - .../statement/service/PcIndexService.java | 0 .../service/impl/MobileWorkServiceImpl.java | 15 +- .../service/impl/PcIndexServiceImpl.java | 8 +- .../system/controller/CarouselController.java | 22 +- .../controller/MobileApiController.java | 16 +- .../sourceplan}/system/domain/Carousel.java | 6 +- .../system/mapper/CarouselMapper.java | 5 +- .../system/service/ICarouselService.java | 3 +- .../service/impl/CarouselServiceImpl.java | 15 +- .../controller/ManufactureIntoController.java | 22 +- .../controller/ProPickController.java | 29 +- .../RealTimeInventoryController.java | 24 +- .../controller/WarehouseController.java | 22 +- .../warehouse/domain/ManufactureInto.java | 12 +- .../domain/ManufactureIntoEntry.java | 12 +- .../sourceplan}/warehouse/domain/ProPick.java | 12 +- .../warehouse/domain/ProPickEntry.java | 10 +- .../warehouse/domain/RealTimeInventory.java | 8 +- .../warehouse/domain/Warehouse.java | 10 +- .../mapper/ManufactureIntoEntryMapper.java | 5 +- .../mapper/ManufactureIntoMapper.java | 7 +- .../warehouse/mapper/ProPickEntryMapper.java | 5 +- .../warehouse/mapper/ProPickMapper.java | 7 +- .../mapper/RealTimeInventoryMapper.java | 5 +- .../warehouse/mapper/WarehouseMapper.java | 5 +- .../service/IManufactureIntoService.java | 3 +- .../warehouse/service/IProPickService.java | 3 +- .../service/IRealTimeInventoryService.java | 3 +- .../warehouse/service/IWarehouseService.java | 4 +- .../impl/ManufactureIntoServiceImpl.java | 24 +- .../service/impl/ProPickServiceImpl.java | 22 +- .../impl/RealTimeInventoryServiceImpl.java | 11 +- .../service/impl/WarehouseServiceImpl.java | 12 +- 575 files changed, 773 insertions(+), 56447 deletions(-) delete mode 100644 mes-ui/.editorconfig delete mode 100644 mes-ui/.env.development delete mode 100644 mes-ui/.env.production delete mode 100644 mes-ui/.env.staging delete mode 100644 mes-ui/.eslintignore delete mode 100644 mes-ui/.eslintrc.js delete mode 100644 mes-ui/.gitignore delete mode 100644 mes-ui/README.md delete mode 100644 mes-ui/babel.config.js delete mode 100644 mes-ui/bin/build.bat delete mode 100644 mes-ui/bin/package.bat delete mode 100644 mes-ui/bin/run-web.bat delete mode 100644 mes-ui/build/index.js delete mode 100644 mes-ui/package.json delete mode 100644 mes-ui/public/favicon.ico delete mode 100644 mes-ui/public/html/ie.html delete mode 100644 mes-ui/public/index.html delete mode 100644 mes-ui/public/robots.txt delete mode 100644 mes-ui/src/App.vue delete mode 100644 mes-ui/src/api/login.js delete mode 100644 mes-ui/src/api/menu.js delete mode 100644 mes-ui/src/api/mes/barcode/barcodeRecord.js delete mode 100644 mes-ui/src/api/mes/barcode/materialSn.js delete mode 100644 mes-ui/src/api/mes/common/sysCodeRule.js delete mode 100644 mes-ui/src/api/mes/common/sysUserStation.js delete mode 100644 mes-ui/src/api/mes/equipment/equipment.js delete mode 100644 mes-ui/src/api/mes/equipment/inspectionItem.js delete mode 100644 mes-ui/src/api/mes/equipment/repairOrder.js delete mode 100644 mes-ui/src/api/mes/finance/payroll.js delete mode 100644 mes-ui/src/api/mes/finance/pieceWagePlan.js delete mode 100644 mes-ui/src/api/mes/index.js delete mode 100644 mes-ui/src/api/mes/integration/integrateDataSource.js delete mode 100644 mes-ui/src/api/mes/integration/integratePlan.js delete mode 100644 mes-ui/src/api/mes/masterdata/bom.js delete mode 100644 mes-ui/src/api/mes/masterdata/customer.js delete mode 100644 mes-ui/src/api/mes/masterdata/material.js delete mode 100644 mes-ui/src/api/mes/masterdata/materialClass.js delete mode 100644 mes-ui/src/api/mes/masterdata/station.js delete mode 100644 mes-ui/src/api/mes/masterdata/unit.js delete mode 100644 mes-ui/src/api/mes/masterdata/unitChange.js delete mode 100644 mes-ui/src/api/mes/masterdata/workshop.js delete mode 100644 mes-ui/src/api/mes/production/process.js delete mode 100644 mes-ui/src/api/mes/production/report.js delete mode 100644 mes-ui/src/api/mes/production/route.js delete mode 100644 mes-ui/src/api/mes/production/workOrder.js delete mode 100644 mes-ui/src/api/mes/quality/qualityLevel.js delete mode 100644 mes-ui/src/api/mes/quality/reason.js delete mode 100644 mes-ui/src/api/mes/quality/reportQuality.js delete mode 100644 mes-ui/src/api/mes/sale/saleOrder.js delete mode 100644 mes-ui/src/api/mes/system/carousel.js delete mode 100644 mes-ui/src/api/mes/warehouse/inventory.js delete mode 100644 mes-ui/src/api/mes/warehouse/manufactureInto.js delete mode 100644 mes-ui/src/api/mes/warehouse/proPick.js delete mode 100644 mes-ui/src/api/mes/warehouse/warehouse.js delete mode 100644 mes-ui/src/api/monitor/cache.js delete mode 100644 mes-ui/src/api/monitor/job.js delete mode 100644 mes-ui/src/api/monitor/jobLog.js delete mode 100644 mes-ui/src/api/monitor/logininfor.js delete mode 100644 mes-ui/src/api/monitor/online.js delete mode 100644 mes-ui/src/api/monitor/operlog.js delete mode 100644 mes-ui/src/api/monitor/server.js delete mode 100644 mes-ui/src/api/system/config.js delete mode 100644 mes-ui/src/api/system/dept.js delete mode 100644 mes-ui/src/api/system/dict/data.js delete mode 100644 mes-ui/src/api/system/dict/type.js delete mode 100644 mes-ui/src/api/system/menu.js delete mode 100644 mes-ui/src/api/system/notice.js delete mode 100644 mes-ui/src/api/system/post.js delete mode 100644 mes-ui/src/api/system/role.js delete mode 100644 mes-ui/src/api/system/user.js delete mode 100644 mes-ui/src/api/tool/gen.js delete mode 100644 mes-ui/src/assets/401_images/401.gif delete mode 100644 mes-ui/src/assets/404_images/404.png delete mode 100644 mes-ui/src/assets/404_images/404_cloud.png delete mode 100644 mes-ui/src/assets/icons/index.js delete mode 100644 mes-ui/src/assets/icons/svg/404.svg delete mode 100644 mes-ui/src/assets/icons/svg/bug.svg delete mode 100644 mes-ui/src/assets/icons/svg/build.svg delete mode 100644 mes-ui/src/assets/icons/svg/button.svg delete mode 100644 mes-ui/src/assets/icons/svg/cascader.svg delete mode 100644 mes-ui/src/assets/icons/svg/chart.svg delete mode 100644 mes-ui/src/assets/icons/svg/checkbox.svg delete mode 100644 mes-ui/src/assets/icons/svg/clipboard.svg delete mode 100644 mes-ui/src/assets/icons/svg/code.svg delete mode 100644 mes-ui/src/assets/icons/svg/color.svg delete mode 100644 mes-ui/src/assets/icons/svg/component.svg delete mode 100644 mes-ui/src/assets/icons/svg/dashboard.svg delete mode 100644 mes-ui/src/assets/icons/svg/date-range.svg delete mode 100644 mes-ui/src/assets/icons/svg/date.svg delete mode 100644 mes-ui/src/assets/icons/svg/dict.svg delete mode 100644 mes-ui/src/assets/icons/svg/documentation.svg delete mode 100644 mes-ui/src/assets/icons/svg/download.svg delete mode 100644 mes-ui/src/assets/icons/svg/drag.svg delete mode 100644 mes-ui/src/assets/icons/svg/druid.svg delete mode 100644 mes-ui/src/assets/icons/svg/edit.svg delete mode 100644 mes-ui/src/assets/icons/svg/education.svg delete mode 100644 mes-ui/src/assets/icons/svg/email.svg delete mode 100644 mes-ui/src/assets/icons/svg/example.svg delete mode 100644 mes-ui/src/assets/icons/svg/excel.svg delete mode 100644 mes-ui/src/assets/icons/svg/exit-fullscreen.svg delete mode 100644 mes-ui/src/assets/icons/svg/eye-open.svg delete mode 100644 mes-ui/src/assets/icons/svg/eye.svg delete mode 100644 mes-ui/src/assets/icons/svg/form.svg delete mode 100644 mes-ui/src/assets/icons/svg/fullscreen.svg delete mode 100644 mes-ui/src/assets/icons/svg/github.svg delete mode 100644 mes-ui/src/assets/icons/svg/guide.svg delete mode 100644 mes-ui/src/assets/icons/svg/icon.svg delete mode 100644 mes-ui/src/assets/icons/svg/input.svg delete mode 100644 mes-ui/src/assets/icons/svg/international.svg delete mode 100644 mes-ui/src/assets/icons/svg/job.svg delete mode 100644 mes-ui/src/assets/icons/svg/language.svg delete mode 100644 mes-ui/src/assets/icons/svg/link.svg delete mode 100644 mes-ui/src/assets/icons/svg/list.svg delete mode 100644 mes-ui/src/assets/icons/svg/lock.svg delete mode 100644 mes-ui/src/assets/icons/svg/log.svg delete mode 100644 mes-ui/src/assets/icons/svg/logininfor.svg delete mode 100644 mes-ui/src/assets/icons/svg/message.svg delete mode 100644 mes-ui/src/assets/icons/svg/money.svg delete mode 100644 mes-ui/src/assets/icons/svg/monitor.svg delete mode 100644 mes-ui/src/assets/icons/svg/nested.svg delete mode 100644 mes-ui/src/assets/icons/svg/number.svg delete mode 100644 mes-ui/src/assets/icons/svg/online.svg delete mode 100644 mes-ui/src/assets/icons/svg/password.svg delete mode 100644 mes-ui/src/assets/icons/svg/pdf.svg delete mode 100644 mes-ui/src/assets/icons/svg/people.svg delete mode 100644 mes-ui/src/assets/icons/svg/peoples.svg delete mode 100644 mes-ui/src/assets/icons/svg/phone.svg delete mode 100644 mes-ui/src/assets/icons/svg/post.svg delete mode 100644 mes-ui/src/assets/icons/svg/qq.svg delete mode 100644 mes-ui/src/assets/icons/svg/question.svg delete mode 100644 mes-ui/src/assets/icons/svg/radio.svg delete mode 100644 mes-ui/src/assets/icons/svg/rate.svg delete mode 100644 mes-ui/src/assets/icons/svg/redis-list.svg delete mode 100644 mes-ui/src/assets/icons/svg/redis.svg delete mode 100644 mes-ui/src/assets/icons/svg/row.svg delete mode 100644 mes-ui/src/assets/icons/svg/search.svg delete mode 100644 mes-ui/src/assets/icons/svg/select.svg delete mode 100644 mes-ui/src/assets/icons/svg/server.svg delete mode 100644 mes-ui/src/assets/icons/svg/shopping.svg delete mode 100644 mes-ui/src/assets/icons/svg/size.svg delete mode 100644 mes-ui/src/assets/icons/svg/skill.svg delete mode 100644 mes-ui/src/assets/icons/svg/slider.svg delete mode 100644 mes-ui/src/assets/icons/svg/star.svg delete mode 100644 mes-ui/src/assets/icons/svg/swagger.svg delete mode 100644 mes-ui/src/assets/icons/svg/switch.svg delete mode 100644 mes-ui/src/assets/icons/svg/system.svg delete mode 100644 mes-ui/src/assets/icons/svg/tab.svg delete mode 100644 mes-ui/src/assets/icons/svg/table.svg delete mode 100644 mes-ui/src/assets/icons/svg/textarea.svg delete mode 100644 mes-ui/src/assets/icons/svg/theme.svg delete mode 100644 mes-ui/src/assets/icons/svg/time-range.svg delete mode 100644 mes-ui/src/assets/icons/svg/time.svg delete mode 100644 mes-ui/src/assets/icons/svg/tool.svg delete mode 100644 mes-ui/src/assets/icons/svg/tree-table.svg delete mode 100644 mes-ui/src/assets/icons/svg/tree.svg delete mode 100644 mes-ui/src/assets/icons/svg/upload.svg delete mode 100644 mes-ui/src/assets/icons/svg/user.svg delete mode 100644 mes-ui/src/assets/icons/svg/validCode.svg delete mode 100644 mes-ui/src/assets/icons/svg/wechat.svg delete mode 100644 mes-ui/src/assets/icons/svg/zip.svg delete mode 100644 mes-ui/src/assets/icons/svgo.yml delete mode 100644 mes-ui/src/assets/images/daiji.jpg delete mode 100644 mes-ui/src/assets/images/dark.svg delete mode 100644 mes-ui/src/assets/images/guzhang.jpg delete mode 100644 mes-ui/src/assets/images/light.svg delete mode 100644 mes-ui/src/assets/images/login-background.jpg delete mode 100644 mes-ui/src/assets/images/profile.jpg delete mode 100644 mes-ui/src/assets/images/weikaiji.jpg delete mode 100644 mes-ui/src/assets/images/yunxing.jpg delete mode 100644 mes-ui/src/assets/logo/logo.png delete mode 100644 mes-ui/src/assets/styles/btn.scss delete mode 100644 mes-ui/src/assets/styles/element-ui.scss delete mode 100644 mes-ui/src/assets/styles/element-variables.scss delete mode 100644 mes-ui/src/assets/styles/index.scss delete mode 100644 mes-ui/src/assets/styles/jinzhong.scss delete mode 100644 mes-ui/src/assets/styles/mixin.scss delete mode 100644 mes-ui/src/assets/styles/ruoyi.scss delete mode 100644 mes-ui/src/assets/styles/sidebar.scss delete mode 100644 mes-ui/src/assets/styles/transition.scss delete mode 100644 mes-ui/src/assets/styles/variables.scss delete mode 100644 mes-ui/src/components/Breadcrumb/index.vue delete mode 100644 mes-ui/src/components/Crontab/day.vue delete mode 100644 mes-ui/src/components/Crontab/hour.vue delete mode 100644 mes-ui/src/components/Crontab/index.vue delete mode 100644 mes-ui/src/components/Crontab/min.vue delete mode 100644 mes-ui/src/components/Crontab/month.vue delete mode 100644 mes-ui/src/components/Crontab/result.vue delete mode 100644 mes-ui/src/components/Crontab/second.vue delete mode 100644 mes-ui/src/components/Crontab/week.vue delete mode 100644 mes-ui/src/components/Crontab/year.vue delete mode 100644 mes-ui/src/components/DictData/index.js delete mode 100644 mes-ui/src/components/DictTag/index.vue delete mode 100644 mes-ui/src/components/Editor/index.vue delete mode 100644 mes-ui/src/components/FileUpload/index.vue delete mode 100644 mes-ui/src/components/Hamburger/index.vue delete mode 100644 mes-ui/src/components/HeaderSearch/index.vue delete mode 100644 mes-ui/src/components/IconSelect/index.vue delete mode 100644 mes-ui/src/components/IconSelect/requireIcons.js delete mode 100644 mes-ui/src/components/ImagePreview/index.vue delete mode 100644 mes-ui/src/components/ImageUpload/index.vue delete mode 100644 mes-ui/src/components/Pagination/index.vue delete mode 100644 mes-ui/src/components/PanThumb/index.vue delete mode 100644 mes-ui/src/components/ParentView/index.vue delete mode 100644 mes-ui/src/components/RightPanel/index.vue delete mode 100644 mes-ui/src/components/RightToolbar/index.vue delete mode 100644 mes-ui/src/components/RuoYi/Doc/index.vue delete mode 100644 mes-ui/src/components/RuoYi/Git/index.vue delete mode 100644 mes-ui/src/components/Screenfull/index.vue delete mode 100644 mes-ui/src/components/SizeSelect/index.vue delete mode 100644 mes-ui/src/components/SvgIcon/index.vue delete mode 100644 mes-ui/src/components/ThemePicker/index.vue delete mode 100644 mes-ui/src/components/TopNav/index.vue delete mode 100644 mes-ui/src/components/iFrame/index.vue delete mode 100644 mes-ui/src/components/mes/address.json delete mode 100644 mes-ui/src/components/mes/materialSelect.vue delete mode 100644 mes-ui/src/components/mes/workOrderPreview.vue delete mode 100644 mes-ui/src/directive/dialog/drag.js delete mode 100644 mes-ui/src/directive/dialog/dragHeight.js delete mode 100644 mes-ui/src/directive/dialog/dragWidth.js delete mode 100644 mes-ui/src/directive/index.js delete mode 100644 mes-ui/src/directive/module/clipboard.js delete mode 100644 mes-ui/src/directive/permission/hasPermi.js delete mode 100644 mes-ui/src/directive/permission/hasRole.js delete mode 100644 mes-ui/src/layout/components/AppMain.vue delete mode 100644 mes-ui/src/layout/components/IframeToggle/index.vue delete mode 100644 mes-ui/src/layout/components/InnerLink/index.vue delete mode 100644 mes-ui/src/layout/components/Navbar.vue delete mode 100644 mes-ui/src/layout/components/Settings/index.vue delete mode 100644 mes-ui/src/layout/components/Sidebar/FixiOSBug.js delete mode 100644 mes-ui/src/layout/components/Sidebar/Item.vue delete mode 100644 mes-ui/src/layout/components/Sidebar/Link.vue delete mode 100644 mes-ui/src/layout/components/Sidebar/Logo.vue delete mode 100644 mes-ui/src/layout/components/Sidebar/SidebarItem.vue delete mode 100644 mes-ui/src/layout/components/Sidebar/index.vue delete mode 100644 mes-ui/src/layout/components/TagsView/ScrollPane.vue delete mode 100644 mes-ui/src/layout/components/TagsView/index.vue delete mode 100644 mes-ui/src/layout/components/index.js delete mode 100644 mes-ui/src/layout/index.vue delete mode 100644 mes-ui/src/layout/mixin/ResizeHandler.js delete mode 100644 mes-ui/src/main.js delete mode 100644 mes-ui/src/permission.js delete mode 100644 mes-ui/src/plugins/auth.js delete mode 100644 mes-ui/src/plugins/cache.js delete mode 100644 mes-ui/src/plugins/download.js delete mode 100644 mes-ui/src/plugins/index.js delete mode 100644 mes-ui/src/plugins/modal.js delete mode 100644 mes-ui/src/plugins/tab.js delete mode 100644 mes-ui/src/router/index.js delete mode 100644 mes-ui/src/settings.js delete mode 100644 mes-ui/src/store/getters.js delete mode 100644 mes-ui/src/store/index.js delete mode 100644 mes-ui/src/store/modules/app.js delete mode 100644 mes-ui/src/store/modules/dict.js delete mode 100644 mes-ui/src/store/modules/permission.js delete mode 100644 mes-ui/src/store/modules/settings.js delete mode 100644 mes-ui/src/store/modules/tagsView.js delete mode 100644 mes-ui/src/store/modules/user.js delete mode 100644 mes-ui/src/utils/auth.js delete mode 100644 mes-ui/src/utils/dict/Dict.js delete mode 100644 mes-ui/src/utils/dict/DictConverter.js delete mode 100644 mes-ui/src/utils/dict/DictData.js delete mode 100644 mes-ui/src/utils/dict/DictMeta.js delete mode 100644 mes-ui/src/utils/dict/DictOptions.js delete mode 100644 mes-ui/src/utils/dict/index.js delete mode 100644 mes-ui/src/utils/errorCode.js delete mode 100644 mes-ui/src/utils/generator/config.js delete mode 100644 mes-ui/src/utils/generator/css.js delete mode 100644 mes-ui/src/utils/generator/drawingDefault.js delete mode 100644 mes-ui/src/utils/generator/html.js delete mode 100644 mes-ui/src/utils/generator/icon.json delete mode 100644 mes-ui/src/utils/generator/js.js delete mode 100644 mes-ui/src/utils/generator/render.js delete mode 100644 mes-ui/src/utils/index.js delete mode 100644 mes-ui/src/utils/jinzhong.js delete mode 100644 mes-ui/src/utils/jsencrypt.js delete mode 100644 mes-ui/src/utils/permission.js delete mode 100644 mes-ui/src/utils/request.js delete mode 100644 mes-ui/src/utils/ruoyi.js delete mode 100644 mes-ui/src/utils/scroll-to.js delete mode 100644 mes-ui/src/utils/validate.js delete mode 100644 mes-ui/src/views/components/icons/element-icons.js delete mode 100644 mes-ui/src/views/components/icons/index.vue delete mode 100644 mes-ui/src/views/components/icons/svg-icons.js delete mode 100644 mes-ui/src/views/dashboard/BarChart.vue delete mode 100644 mes-ui/src/views/dashboard/LineChart.vue delete mode 100644 mes-ui/src/views/dashboard/PanelGroup.vue delete mode 100644 mes-ui/src/views/dashboard/PieChart.vue delete mode 100644 mes-ui/src/views/dashboard/RaddarChart.vue delete mode 100644 mes-ui/src/views/dashboard/mixins/resize.js delete mode 100644 mes-ui/src/views/error/401.vue delete mode 100644 mes-ui/src/views/error/404.vue delete mode 100644 mes-ui/src/views/index.vue delete mode 100644 mes-ui/src/views/index_v1.vue delete mode 100644 mes-ui/src/views/login.vue delete mode 100644 mes-ui/src/views/mes/barcode/barcodeRecord/index.vue delete mode 100644 mes-ui/src/views/mes/barcode/materialSn/index.vue delete mode 100644 mes-ui/src/views/mes/common/sysCodeRule/index.vue delete mode 100644 mes-ui/src/views/mes/common/sysUserStation/index.vue delete mode 100644 mes-ui/src/views/mes/equipment/equipment/index.vue delete mode 100644 mes-ui/src/views/mes/equipment/inspectionItem/index.vue delete mode 100644 mes-ui/src/views/mes/equipment/oeeGantt/ganttx.vue delete mode 100644 mes-ui/src/views/mes/equipment/oeeGantt/index.vue delete mode 100644 mes-ui/src/views/mes/equipment/repairOrder/index.vue delete mode 100644 mes-ui/src/views/mes/finance/payroll/form.vue delete mode 100644 mes-ui/src/views/mes/finance/payroll/index.vue delete mode 100644 mes-ui/src/views/mes/finance/pieceWagePlan/index.vue delete mode 100644 mes-ui/src/views/mes/integration/integrateDataSource/index.vue delete mode 100644 mes-ui/src/views/mes/integration/integratePlan/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/bom/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/customer/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/material/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/materialClass/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/station/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/unit/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/unitChange/index.vue delete mode 100644 mes-ui/src/views/mes/masterdata/workshop/index.vue delete mode 100644 mes-ui/src/views/mes/production/process/index.vue delete mode 100644 mes-ui/src/views/mes/production/report/form.vue delete mode 100644 mes-ui/src/views/mes/production/report/index.vue delete mode 100644 mes-ui/src/views/mes/production/route/index.vue delete mode 100644 mes-ui/src/views/mes/production/workOrder/form.vue delete mode 100644 mes-ui/src/views/mes/production/workOrder/index.vue delete mode 100644 mes-ui/src/views/mes/quality/qualityLevel/index.vue delete mode 100644 mes-ui/src/views/mes/quality/reason/index.vue delete mode 100644 mes-ui/src/views/mes/quality/reportQuality/form.vue delete mode 100644 mes-ui/src/views/mes/quality/reportQuality/index.vue delete mode 100644 mes-ui/src/views/mes/sale/saleOrder/form.vue delete mode 100644 mes-ui/src/views/mes/sale/saleOrder/index.vue delete mode 100644 mes-ui/src/views/mes/warehouse/inventory/index.vue delete mode 100644 mes-ui/src/views/mes/warehouse/manufactureInto/form.vue delete mode 100644 mes-ui/src/views/mes/warehouse/manufactureInto/index.vue delete mode 100644 mes-ui/src/views/mes/warehouse/proPick/form.vue delete mode 100644 mes-ui/src/views/mes/warehouse/proPick/index.vue delete mode 100644 mes-ui/src/views/mes/warehouse/warehouse/index.vue delete mode 100644 mes-ui/src/views/monitor/cache/index.vue delete mode 100644 mes-ui/src/views/monitor/cache/list.vue delete mode 100644 mes-ui/src/views/monitor/druid/index.vue delete mode 100644 mes-ui/src/views/monitor/job/index.vue delete mode 100644 mes-ui/src/views/monitor/job/log.vue delete mode 100644 mes-ui/src/views/monitor/logininfor/index.vue delete mode 100644 mes-ui/src/views/monitor/online/index.vue delete mode 100644 mes-ui/src/views/monitor/operlog/index.vue delete mode 100644 mes-ui/src/views/monitor/server/index.vue delete mode 100644 mes-ui/src/views/redirect.vue delete mode 100644 mes-ui/src/views/register.vue delete mode 100644 mes-ui/src/views/system/carousel/index.vue delete mode 100644 mes-ui/src/views/system/config/index.vue delete mode 100644 mes-ui/src/views/system/dept/index.vue delete mode 100644 mes-ui/src/views/system/dict/data.vue delete mode 100644 mes-ui/src/views/system/dict/index.vue delete mode 100644 mes-ui/src/views/system/menu/index.vue delete mode 100644 mes-ui/src/views/system/notice/index.vue delete mode 100644 mes-ui/src/views/system/post/index.vue delete mode 100644 mes-ui/src/views/system/role/authUser.vue delete mode 100644 mes-ui/src/views/system/role/index.vue delete mode 100644 mes-ui/src/views/system/role/selectUser.vue delete mode 100644 mes-ui/src/views/system/user/authRole.vue delete mode 100644 mes-ui/src/views/system/user/index.vue delete mode 100644 mes-ui/src/views/system/user/profile/index.vue delete mode 100644 mes-ui/src/views/system/user/profile/resetPwd.vue delete mode 100644 mes-ui/src/views/system/user/profile/userAvatar.vue delete mode 100644 mes-ui/src/views/system/user/profile/userInfo.vue delete mode 100644 mes-ui/src/views/tool/build/CodeTypeDialog.vue delete mode 100644 mes-ui/src/views/tool/build/DraggableItem.vue delete mode 100644 mes-ui/src/views/tool/build/IconsDialog.vue delete mode 100644 mes-ui/src/views/tool/build/RightPanel.vue delete mode 100644 mes-ui/src/views/tool/build/TreeNodeDialog.vue delete mode 100644 mes-ui/src/views/tool/build/index.vue delete mode 100644 mes-ui/src/views/tool/gen/basicInfoForm.vue delete mode 100644 mes-ui/src/views/tool/gen/editTable.vue delete mode 100644 mes-ui/src/views/tool/gen/genInfoForm.vue delete mode 100644 mes-ui/src/views/tool/gen/importTable.vue delete mode 100644 mes-ui/src/views/tool/gen/index.vue delete mode 100644 mes-ui/src/views/tool/swagger/index.vue delete mode 100644 mes-ui/vue.config.js rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/controller/BarcodeRecordController.java (88%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/controller/MaterialSnController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/domain/BarcodeRecord.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/domain/MaterialSn.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/mapper/BarcodeRecordMapper.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/mapper/MaterialSnMapper.java (82%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/service/IBarcodeRecordService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/service/IMaterialSnService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/service/impl/BarcodeRecordServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/barcode/service/impl/MaterialSnServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/controller/SysCodeRuleController.java (87%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/controller/SysUserStationController.java (89%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/domain/SysCodeRule.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/domain/SysCodeRuleEntry.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/domain/SysFileInfo.java (79%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/domain/SysUserStation.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mapper/SqlCheckMapper.java (93%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mapper/SysCodeRuleEntryMapper.java (79%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mapper/SysCodeRuleMapper.java (87%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mapper/SysFileInfoMapper.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mapper/SysUserStationMapper.java (91%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mqtt/MqttConsumerCallBack.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mqtt/MqttConsumerConfig.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mybatisplus/EasySqlInjector.java (91%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/mybatisplus/MyMetaObjectHandler.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/service/ISysCodeRuleService.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/service/ISysUserStationService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/service/impl/SysCodeRuleServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/service/impl/SysUserStationServiceImpl.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/utils/MesDateUtil.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/common/utils/SqlCheckUtil.java (89%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/controller/EquipmentController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/controller/InspectionItemController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/controller/RepairOrderController.java (88%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/domain/Equipment.java (93%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/domain/InspectionItem.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/domain/RepairOrder.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/domain/RepairOrderEntry.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/mapper/EquipmentMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/mapper/InspectionItemMapper.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/mapper/RepairOrderEntryMapper.java (82%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/mapper/RepairOrderMapper.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/IEquipmentService.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/IInspectionItemService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/IRepairOrderService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/impl/EquipmentServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/impl/InspectionItemServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/equipment/service/impl/RepairOrderServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/controller/PayrollController.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/controller/PieceWagePlanController.java (88%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/domain/Payroll.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/domain/PieceWagePlan.java (91%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/mapper/PayrollMapper.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/mapper/PieceWagePlanMapper.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/service/IPayrollService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/service/IPieceWagePlanService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/service/impl/PayrollServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/finance/service/impl/PieceWagePlanServiceImpl.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/controller/IntegrateDataSourceController.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/controller/IntegratePlanController.java (93%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/domain/InteDataSourceField.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/domain/IntePlanField.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/domain/IntegrateDataSource.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/domain/IntegratePlan.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/mapper/IntegrateDataSourceMapper.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/mapper/IntegratePlanMapper.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/service/IIntegrateDataSourceService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/service/IIntegratePlanService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/service/impl/IntegrateDataSourceServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/integration/service/impl/IntegratePlanServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/BomController.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/CustomerController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/MaterialClassController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/MaterialController.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/StationController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/UnitChangeController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/UnitController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/controller/WorkshopController.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Bom.java (91%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Customer.java (94%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Material.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/MaterialClass.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Station.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Unit.java (78%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/UnitChange.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/domain/Workshop.java (89%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/BomMapper.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/CustomerMapper.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/MaterialClassMapper.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/MaterialMapper.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/StationMapper.java (94%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/UnitChangeMapper.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/UnitMapper.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/mapper/WorkshopMapper.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IBomService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/ICustomerService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IMaterialClassService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IMaterialService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IStationService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IUnitChangeService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IUnitService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/IWorkshopService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/BomServiceImpl.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/CustomerServiceImpl.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/MaterialClassServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/MaterialServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/StationServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/UnitChangeServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/UnitServiceImpl.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/masterdata/service/impl/WorkshopServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/controller/ProcessController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/controller/ReportController.java (87%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/controller/RouteController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/controller/WorkOrderController.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/Process.java (87%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/Report.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/Route.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/RouteProcess.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/WorkOrder.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/domain/WorkOrderEntry.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/mapper/ProcessMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/mapper/ReportMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/mapper/RouteMapper.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/mapper/WorkOrderEntryMapper.java (72%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/mapper/WorkOrderMapper.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/IProcessService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/IReportService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/IRouteService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/IWorkOrderService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/impl/ProcessServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/impl/ReportServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/impl/RouteServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/production/service/impl/WorkOrderServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/controller/QualityLevelController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/controller/ReasonController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/controller/ReportQualityController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/domain/QualityLevel.java (82%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/domain/Reason.java (89%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/domain/ReportQuality.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/domain/ReportQualityEntry.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/domain/ReportQualityReason.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/mapper/QualityLevelMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/mapper/ReasonMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/mapper/ReportQualityEntryMapper.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/mapper/ReportQualityMapper.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/mapper/ReportQualityReasonMapper.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/IQualityLevelService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/IReasonService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/IReportQualityService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/impl/QualityLevelServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/impl/ReasonServiceImpl.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/quality/service/impl/ReportQualityServiceImpl.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/controller/SalOrderController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/domain/SalOrder.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/domain/SalOrderEntry.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/mapper/SalOrderEntryMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/mapper/SalOrderMapper.java (92%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/service/ISalOrderService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/sale/service/impl/SalOrderServiceImpl.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/controller/MobileWorkController.java (84%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/controller/PcIndexController.java (79%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/mapper/MobileWorkMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/mapper/PcIndexMapper.java (94%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/service/MobileWorkService.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/service/PcIndexService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/service/impl/MobileWorkServiceImpl.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/statement/service/impl/PcIndexServiceImpl.java (98%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/controller/CarouselController.java (85%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/controller/MobileApiController.java (89%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/domain/Carousel.java (88%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/mapper/CarouselMapper.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/service/ICarouselService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/system/service/impl/CarouselServiceImpl.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/controller/ManufactureIntoController.java (87%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/controller/ProPickController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/controller/RealTimeInventoryController.java (82%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/controller/WarehouseController.java (86%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/ManufactureInto.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/ManufactureIntoEntry.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/ProPick.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/ProPickEntry.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/RealTimeInventory.java (91%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/domain/Warehouse.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/ManufactureIntoEntryMapper.java (83%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/ManufactureIntoMapper.java (95%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/ProPickEntryMapper.java (81%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/ProPickMapper.java (96%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/RealTimeInventoryMapper.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/mapper/WarehouseMapper.java (90%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/IManufactureIntoService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/IProPickService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/IRealTimeInventoryService.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/IWarehouseService.java (100%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/impl/ManufactureIntoServiceImpl.java (97%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/impl/ProPickServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/impl/RealTimeInventoryServiceImpl.java (99%) rename yjh-mes/src/main/java/{com/ruoyi => cn/sourceplan}/warehouse/service/impl/WarehouseServiceImpl.java (100%) diff --git a/README.md b/README.md index be8ee70..c2f2956 100644 --- a/README.md +++ b/README.md @@ -57,11 +57,5 @@ -## 🤝 商业服务 -提供商业服务,团队做过几十家生产制造企业的ERP,WMS,MES系统。 - -有丰富的硬件数据采集、第三方系统集成(金蝶/用友等)经验。 - -可以微信联系【**jinzhong373**】。 diff --git a/mes-admin/src/main/resources/application-druid.yml b/mes-admin/src/main/resources/application-druid.yml index 5c0c968..3fafa44 100644 --- a/mes-admin/src/main/resources/application-druid.yml +++ b/mes-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/yjh-mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.56.204:3306/yjh-mes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: root + password: 123456 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/mes-admin/src/main/resources/application.yml b/mes-admin/src/main/resources/application.yml index f76e397..9b960b6 100644 --- a/mes-admin/src/main/resources/application.yml +++ b/mes-admin/src/main/resources/application.yml @@ -9,7 +9,7 @@ ruoyi: # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/yjh-mes/uploadPath + profile: E:/yjh-mes/uploadPath # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 diff --git a/mes-ui/.editorconfig b/mes-ui/.editorconfig deleted file mode 100644 index 7034f9b..0000000 --- a/mes-ui/.editorconfig +++ /dev/null @@ -1,22 +0,0 @@ -# 告诉EditorConfig插件,这是根文件,不用继续往上查找 -root = true - -# 匹配全部文件 -[*] -# 设置字符集 -charset = utf-8 -# 缩进风格,可选space、tab -indent_style = space -# 缩进的空格数 -indent_size = 2 -# 结尾换行符,可选lf、cr、crlf -end_of_line = lf -# 在文件结尾插入新行 -insert_final_newline = true -# 删除一行中的前后空格 -trim_trailing_whitespace = true - -# 匹配md结尾的文件 -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/mes-ui/.env.development b/mes-ui/.env.development deleted file mode 100644 index cf8f1f1..0000000 --- a/mes-ui/.env.development +++ /dev/null @@ -1,11 +0,0 @@ -# 页面标题 -VUE_APP_TITLE = 智能工厂管理平台 - -# 开发环境配置 -ENV = 'development' - -# 智能工厂管理平台/开发环境 -VUE_APP_BASE_API = '/dev-api' - -# 路由懒加载 -VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/mes-ui/.env.production b/mes-ui/.env.production deleted file mode 100644 index 4a2e147..0000000 --- a/mes-ui/.env.production +++ /dev/null @@ -1,8 +0,0 @@ -# 页面标题 -VUE_APP_TITLE = 智能工厂管理平台 - -# 生产环境配置 -ENV = 'production' - -# 智能工厂管理平台/生产环境 -VUE_APP_BASE_API = '/prod-api' diff --git a/mes-ui/.env.staging b/mes-ui/.env.staging deleted file mode 100644 index 5276df0..0000000 --- a/mes-ui/.env.staging +++ /dev/null @@ -1,10 +0,0 @@ -# 页面标题 -VUE_APP_TITLE = 智能工厂管理平台 - -NODE_ENV = production - -# 测试环境配置 -ENV = 'staging' - -# 智能工厂管理平台/测试环境 -VUE_APP_BASE_API = '/stage-api' diff --git a/mes-ui/.eslintignore b/mes-ui/.eslintignore deleted file mode 100644 index 89be6f6..0000000 --- a/mes-ui/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -# 忽略build目录下类型为js的文件的语法检查 -build/*.js -# 忽略src/assets目录下文件的语法检查 -src/assets -# 忽略public目录下文件的语法检查 -public -# 忽略当前目录下为js的文件的语法检查 -*.js -# 忽略当前目录下为vue的文件的语法检查 -*.vue \ No newline at end of file diff --git a/mes-ui/.eslintrc.js b/mes-ui/.eslintrc.js deleted file mode 100644 index 82bbdee..0000000 --- a/mes-ui/.eslintrc.js +++ /dev/null @@ -1,199 +0,0 @@ -// ESlint 检查配置 -module.exports = { - root: true, - parserOptions: { - parser: 'babel-eslint', - sourceType: 'module' - }, - env: { - browser: true, - node: true, - es6: true, - }, - extends: ['plugin:vue/recommended', 'eslint:recommended'], - - // add your custom rules here - //it is base on https://github.com/vuejs/eslint-config-vue - rules: { - "vue/max-attributes-per-line": [2, { - "singleline": 10, - "multiline": { - "max": 1, - "allowFirstLine": false - } - }], - "vue/singleline-html-element-content-newline": "off", - "vue/multiline-html-element-content-newline":"off", - "vue/name-property-casing": ["error", "PascalCase"], - "vue/no-v-html": "off", - 'accessor-pairs': 2, - 'arrow-spacing': [2, { - 'before': true, - 'after': true - }], - 'block-spacing': [2, 'always'], - 'brace-style': [2, '1tbs', { - 'allowSingleLine': true - }], - 'camelcase': [0, { - 'properties': 'always' - }], - 'comma-dangle': [2, 'never'], - 'comma-spacing': [2, { - 'before': false, - 'after': true - }], - 'comma-style': [2, 'last'], - 'constructor-super': 2, - 'curly': [2, 'multi-line'], - 'dot-location': [2, 'property'], - 'eol-last': 2, - 'eqeqeq': ["error", "always", {"null": "ignore"}], - 'generator-star-spacing': [2, { - 'before': true, - 'after': true - }], - 'handle-callback-err': [2, '^(err|error)$'], - 'indent': [2, 2, { - 'SwitchCase': 1 - }], - 'jsx-quotes': [2, 'prefer-single'], - 'key-spacing': [2, { - 'beforeColon': false, - 'afterColon': true - }], - 'keyword-spacing': [2, { - 'before': true, - 'after': true - }], - 'new-cap': [2, { - 'newIsCap': true, - 'capIsNew': false - }], - 'new-parens': 2, - 'no-array-constructor': 2, - 'no-caller': 2, - 'no-console': 'off', - 'no-class-assign': 2, - 'no-cond-assign': 2, - 'no-const-assign': 2, - 'no-control-regex': 0, - 'no-delete-var': 2, - 'no-dupe-args': 2, - 'no-dupe-class-members': 2, - 'no-dupe-keys': 2, - 'no-duplicate-case': 2, - 'no-empty-character-class': 2, - 'no-empty-pattern': 2, - 'no-eval': 2, - 'no-ex-assign': 2, - 'no-extend-native': 2, - 'no-extra-bind': 2, - 'no-extra-boolean-cast': 2, - 'no-extra-parens': [2, 'functions'], - 'no-fallthrough': 2, - 'no-floating-decimal': 2, - 'no-func-assign': 2, - 'no-implied-eval': 2, - 'no-inner-declarations': [2, 'functions'], - 'no-invalid-regexp': 2, - 'no-irregular-whitespace': 2, - 'no-iterator': 2, - 'no-label-var': 2, - 'no-labels': [2, { - 'allowLoop': false, - 'allowSwitch': false - }], - 'no-lone-blocks': 2, - 'no-mixed-spaces-and-tabs': 2, - 'no-multi-spaces': 2, - 'no-multi-str': 2, - 'no-multiple-empty-lines': [2, { - 'max': 1 - }], - 'no-native-reassign': 2, - 'no-negated-in-lhs': 2, - 'no-new-object': 2, - 'no-new-require': 2, - 'no-new-symbol': 2, - 'no-new-wrappers': 2, - 'no-obj-calls': 2, - 'no-octal': 2, - 'no-octal-escape': 2, - 'no-path-concat': 2, - 'no-proto': 2, - 'no-redeclare': 2, - 'no-regex-spaces': 2, - 'no-return-assign': [2, 'except-parens'], - 'no-self-assign': 2, - 'no-self-compare': 2, - 'no-sequences': 2, - 'no-shadow-restricted-names': 2, - 'no-spaced-func': 2, - 'no-sparse-arrays': 2, - 'no-this-before-super': 2, - 'no-throw-literal': 2, - 'no-trailing-spaces': 2, - 'no-undef': 2, - 'no-undef-init': 2, - 'no-unexpected-multiline': 2, - 'no-unmodified-loop-condition': 2, - 'no-unneeded-ternary': [2, { - 'defaultAssignment': false - }], - 'no-unreachable': 2, - 'no-unsafe-finally': 2, - 'no-unused-vars': [2, { - 'vars': 'all', - 'args': 'none' - }], - 'no-useless-call': 2, - 'no-useless-computed-key': 2, - 'no-useless-constructor': 2, - 'no-useless-escape': 0, - 'no-whitespace-before-property': 2, - 'no-with': 2, - 'one-var': [2, { - 'initialized': 'never' - }], - 'operator-linebreak': [2, 'after', { - 'overrides': { - '?': 'before', - ':': 'before' - } - }], - 'padded-blocks': [2, 'never'], - 'quotes': [2, 'single', { - 'avoidEscape': true, - 'allowTemplateLiterals': true - }], - 'semi': [2, 'never'], - 'semi-spacing': [2, { - 'before': false, - 'after': true - }], - 'space-before-blocks': [2, 'always'], - 'space-before-function-paren': [2, 'never'], - 'space-in-parens': [2, 'never'], - 'space-infix-ops': 2, - 'space-unary-ops': [2, { - 'words': true, - 'nonwords': false - }], - 'spaced-comment': [2, 'always', { - 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] - }], - 'template-curly-spacing': [2, 'never'], - 'use-isnan': 2, - 'valid-typeof': 2, - 'wrap-iife': [2, 'any'], - 'yield-star-spacing': [2, 'both'], - 'yoda': [2, 'never'], - 'prefer-const': 2, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'object-curly-spacing': [2, 'always', { - objectsInObjects: false - }], - 'array-bracket-spacing': [2, 'never'] - } -} diff --git a/mes-ui/.gitignore b/mes-ui/.gitignore deleted file mode 100644 index 78a752d..0000000 --- a/mes-ui/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log* -yarn-debug.log* -yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local - -package-lock.json -yarn.lock diff --git a/mes-ui/README.md b/mes-ui/README.md deleted file mode 100644 index 02e029f..0000000 --- a/mes-ui/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## 开发 - -```bash -# 安装依赖 -npm install - -# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 -npm install --registry=https://registry.npmmirror.com - -# 启动服务 -npm run dev -``` - -浏览器访问 http://localhost:80 - -## 发布 - -```bash -# 构建测试环境 -npm run build:stage - -# 构建生产环境 -npm run build:prod -``` \ No newline at end of file diff --git a/mes-ui/babel.config.js b/mes-ui/babel.config.js deleted file mode 100644 index c8267b2..0000000 --- a/mes-ui/babel.config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = { - presets: [ - // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app - '@vue/cli-plugin-babel/preset' - ], - 'env': { - 'development': { - // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). - // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. - 'plugins': ['dynamic-import-node'] - } - } -} \ No newline at end of file diff --git a/mes-ui/bin/build.bat b/mes-ui/bin/build.bat deleted file mode 100644 index dda590d..0000000 --- a/mes-ui/bin/build.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] Weḅdistļ -echo. - -%~d0 -cd %~dp0 - -cd .. -npm run build:prod - -pause \ No newline at end of file diff --git a/mes-ui/bin/package.bat b/mes-ui/bin/package.bat deleted file mode 100644 index 0e5bc0f..0000000 --- a/mes-ui/bin/package.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] װWeḅnode_modulesļ -echo. - -%~d0 -cd %~dp0 - -cd .. -npm install --registry=https://registry.npmmirror.com - -pause \ No newline at end of file diff --git a/mes-ui/bin/run-web.bat b/mes-ui/bin/run-web.bat deleted file mode 100644 index d30deae..0000000 --- a/mes-ui/bin/run-web.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -echo. -echo [Ϣ] ʹ Vue CLI Web ̡ -echo. - -%~d0 -cd %~dp0 - -cd .. -npm run dev - -pause \ No newline at end of file diff --git a/mes-ui/build/index.js b/mes-ui/build/index.js deleted file mode 100644 index 0c57de2..0000000 --- a/mes-ui/build/index.js +++ /dev/null @@ -1,35 +0,0 @@ -const { run } = require('runjs') -const chalk = require('chalk') -const config = require('../vue.config.js') -const rawArgv = process.argv.slice(2) -const args = rawArgv.join(' ') - -if (process.env.npm_config_preview || rawArgv.includes('--preview')) { - const report = rawArgv.includes('--report') - - run(`vue-cli-service build ${args}`) - - const port = 9526 - const publicPath = config.publicPath - - var connect = require('connect') - var serveStatic = require('serve-static') - const app = connect() - - app.use( - publicPath, - serveStatic('./dist', { - index: ['index.html', '/'] - }) - ) - - app.listen(port, function () { - console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) - if (report) { - console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) - } - - }) -} else { - run(`vue-cli-service build ${args}`) -} diff --git a/mes-ui/package.json b/mes-ui/package.json deleted file mode 100644 index e8e109c..0000000 --- a/mes-ui/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "name": "yjh-mes", - "version": "3.8.5", - "description": "智能工厂管理平台", - "author": "源计划", - "license": "GPL-3.0", - "scripts": { - "dev": "vue-cli-service serve", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", - "preview": "node build/index.js --preview", - "lint": "eslint --ext .js,.vue src" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "repository": { - "type": "git", - "url": "https://gitee.com/y_project/RuoYi-Vue.git" - }, - "dependencies": { - "@riophae/vue-treeselect": "0.4.0", - "axios": "0.24.0", - "clipboard": "2.0.8", - "core-js": "3.25.3", - "echarts": "5.4.0", - "element-ui": "2.15.12", - "file-saver": "2.0.5", - "fuse.js": "6.4.3", - "highlight.js": "9.18.5", - "js-beautify": "1.13.0", - "js-cookie": "3.0.1", - "jsencrypt": "3.0.0-rc.1", - "lodash": "^4.17.21", - "nprogress": "0.2.0", - "quill": "1.3.7", - "screenfull": "5.0.2", - "sortablejs": "1.10.2", - "vue": "2.6.12", - "vue-count-to": "1.0.13", - "vue-cropper": "0.5.5", - "vue-meta": "2.4.0", - "vue-router": "3.4.9", - "vuedraggable": "2.24.3", - "vuex": "3.6.0", - "dhtmlx-gantt": "^7.1.11" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "4.4.6", - "@vue/cli-plugin-eslint": "4.4.6", - "@vue/cli-service": "4.4.6", - "babel-eslint": "10.1.0", - "babel-plugin-dynamic-import-node": "2.3.3", - "chalk": "4.1.0", - "compression-webpack-plugin": "5.0.2", - "connect": "3.6.6", - "eslint": "7.15.0", - "eslint-plugin-vue": "7.2.0", - "lint-staged": "10.5.3", - "runjs": "4.4.2", - "sass": "1.32.13", - "sass-loader": "10.1.1", - "script-ext-html-webpack-plugin": "2.1.5", - "svg-sprite-loader": "5.1.1", - "vue-template-compiler": "2.6.12" - }, - "engines": { - "node": ">=8.9", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} diff --git a/mes-ui/public/favicon.ico b/mes-ui/public/favicon.ico deleted file mode 100644 index f7c7c7f01a72caf30f3fff02c51a5b9300354dba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43601 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 g^eB1Az+mD};G)@&U%dPO0GK_mQ~&?~ diff --git a/mes-ui/public/html/ie.html b/mes-ui/public/html/ie.html deleted file mode 100644 index 29ce2b8..0000000 --- a/mes-ui/public/html/ie.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - 请升级您的浏览器 - - - - - - -

请升级您的浏览器,以便我们更好的为您提供服务!

-

您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。

-
-

请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束

-

自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明

-
-

您可以选择更先进的浏览器

-

推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。

- -
- - diff --git a/mes-ui/public/index.html b/mes-ui/public/index.html deleted file mode 100644 index 9b51928..0000000 --- a/mes-ui/public/index.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - <%= webpackConfig.name %> - - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- - diff --git a/mes-ui/public/robots.txt b/mes-ui/public/robots.txt deleted file mode 100644 index 77470cb..0000000 --- a/mes-ui/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: / \ No newline at end of file diff --git a/mes-ui/src/App.vue b/mes-ui/src/App.vue deleted file mode 100644 index 29de49f..0000000 --- a/mes-ui/src/App.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - diff --git a/mes-ui/src/api/login.js b/mes-ui/src/api/login.js deleted file mode 100644 index 649f59c..0000000 --- a/mes-ui/src/api/login.js +++ /dev/null @@ -1,59 +0,0 @@ -import request from '@/utils/request' - -// 登录方法 -export function login(username, password, code, uuid) { - const data = { - username, - password, - code, - uuid - } - return request({ - url: '/login', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 注册方法 -export function register(data) { - return request({ - url: '/register', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 获取用户详细信息 -export function getInfo() { - return request({ - url: '/getInfo', - method: 'get' - }) -} - -// 退出方法 -export function logout() { - return request({ - url: '/logout', - method: 'post' - }) -} - -// 获取验证码 -export function getCodeImg() { - return request({ - url: '/captchaImage', - headers: { - isToken: false - }, - method: 'get', - timeout: 20000 - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/menu.js b/mes-ui/src/api/menu.js deleted file mode 100644 index faef101..0000000 --- a/mes-ui/src/api/menu.js +++ /dev/null @@ -1,9 +0,0 @@ -import request from '@/utils/request' - -// 获取路由 -export const getRouters = () => { - return request({ - url: '/getRouters', - method: 'get' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/mes/barcode/barcodeRecord.js b/mes-ui/src/api/mes/barcode/barcodeRecord.js deleted file mode 100644 index 959d3eb..0000000 --- a/mes-ui/src/api/mes/barcode/barcodeRecord.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询条码生成记录列表 -export function listBarcodeRecord(query) { - return request({ - url: '/barcode/barcodeRecord/list', - method: 'get', - params: query - }) -} - -// 查询条码生成记录详细 -export function getBarcodeRecord(id) { - return request({ - url: '/barcode/barcodeRecord/' + id, - method: 'get' - }) -} - -// 新增条码生成记录 -export function addBarcodeRecord(data) { - return request({ - url: '/barcode/barcodeRecord', - method: 'post', - data: data - }) -} - -// 修改条码生成记录 -export function updateBarcodeRecord(data) { - return request({ - url: '/barcode/barcodeRecord', - method: 'put', - data: data - }) -} - -// 删除条码生成记录 -export function delBarcodeRecord(id) { - return request({ - url: '/barcode/barcodeRecord/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/barcode/materialSn.js b/mes-ui/src/api/mes/barcode/materialSn.js deleted file mode 100644 index 5e088ce..0000000 --- a/mes-ui/src/api/mes/barcode/materialSn.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询物料SN码列表 -export function listMaterialSn(query) { - return request({ - url: '/barcode/materialSn/list', - method: 'get', - params: query - }) -} - -// 查询物料SN码详细 -export function getMaterialSn(id) { - return request({ - url: '/barcode/materialSn/' + id, - method: 'get' - }) -} - -// 新增物料SN码 -export function addMaterialSn(data) { - return request({ - url: '/barcode/materialSn', - method: 'post', - data: data - }) -} - -// 修改物料SN码 -export function updateMaterialSn(data) { - return request({ - url: '/barcode/materialSn', - method: 'put', - data: data - }) -} - -// 删除物料SN码 -export function delMaterialSn(id) { - return request({ - url: '/barcode/materialSn/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/common/sysCodeRule.js b/mes-ui/src/api/mes/common/sysCodeRule.js deleted file mode 100644 index ed81d5b..0000000 --- a/mes-ui/src/api/mes/common/sysCodeRule.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询编码规则列表 -export function listSysCodeRule(query) { - return request({ - url: '/common/sysCodeRule/list', - method: 'get', - params: query - }) -} - -// 查询编码规则详细 -export function getSysCodeRule(id) { - return request({ - url: '/common/sysCodeRule/' + id, - method: 'get' - }) -} - -// 新增编码规则 -export function addSysCodeRule(data) { - return request({ - url: '/common/sysCodeRule', - method: 'post', - data: data - }) -} - -// 修改编码规则 -export function updateSysCodeRule(data) { - return request({ - url: '/common/sysCodeRule', - method: 'put', - data: data - }) -} - -// 删除编码规则 -export function delSysCodeRule(id) { - return request({ - url: '/common/sysCodeRule/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/common/sysUserStation.js b/mes-ui/src/api/mes/common/sysUserStation.js deleted file mode 100644 index 61477eb..0000000 --- a/mes-ui/src/api/mes/common/sysUserStation.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询用户工位绑定列表 -export function listSysUserStation(query) { - return request({ - url: '/common/sysUserStation/list', - method: 'get', - params: query - }) -} - -// 查询用户工位绑定详细 -export function getSysUserStation(userId) { - return request({ - url: '/common/sysUserStation/' + userId, - method: 'get' - }) -} - -// 新增用户工位绑定 -export function addSysUserStation(data) { - return request({ - url: '/common/sysUserStation', - method: 'post', - data: data - }) -} - -// 修改用户工位绑定 -export function updateSysUserStation(data) { - return request({ - url: '/common/sysUserStation', - method: 'put', - data: data - }) -} - -// 删除用户工位绑定 -export function delSysUserStation(id) { - return request({ - url: '/common/sysUserStation/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/equipment/equipment.js b/mes-ui/src/api/mes/equipment/equipment.js deleted file mode 100644 index 2c93c9a..0000000 --- a/mes-ui/src/api/mes/equipment/equipment.js +++ /dev/null @@ -1,55 +0,0 @@ -import request from '@/utils/request' - -// 查询设备信息列表 -export function listEquipment(query) { - return request({ - url: '/equipment/equipment/list', - method: 'get', - params: query - }) -} - -// 查询设备信息详细 -export function getEquipment(id) { - return request({ - url: '/equipment/equipment/' + id, - method: 'get' - }) -} - -// 新增设备信息 -export function addEquipment(data) { - return request({ - url: '/equipment/equipment', - method: 'post', - data: data - }) -} - -// 修改设备信息 -export function updateEquipment(data) { - return request({ - url: '/equipment/equipment', - method: 'put', - data: data - }) -} - -// 删除设备信息 -export function delEquipment(id) { - return request({ - url: '/equipment/equipment/' + id, - method: 'delete' - }) -} - -// 查询设备OEE稼动率 -export function oeeUtilizationList(query) { - return request({ - url: '/equipment/equipment/oeeUtilizationList', - method: 'get', - params: query - }) -} - - diff --git a/mes-ui/src/api/mes/equipment/inspectionItem.js b/mes-ui/src/api/mes/equipment/inspectionItem.js deleted file mode 100644 index 32b1303..0000000 --- a/mes-ui/src/api/mes/equipment/inspectionItem.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询设备项目列表 -export function listInspectionItem(query) { - return request({ - url: '/equipment/inspectionItem/list', - method: 'get', - params: query - }) -} - -// 查询设备项目详细 -export function getInspectionItem(id) { - return request({ - url: '/equipment/inspectionItem/' + id, - method: 'get' - }) -} - -// 新增设备项目 -export function addInspectionItem(data) { - return request({ - url: '/equipment/inspectionItem', - method: 'post', - data: data - }) -} - -// 修改设备项目 -export function updateInspectionItem(data) { - return request({ - url: '/equipment/inspectionItem', - method: 'put', - data: data - }) -} - -// 删除设备项目 -export function delInspectionItem(id) { - return request({ - url: '/equipment/inspectionItem/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/equipment/repairOrder.js b/mes-ui/src/api/mes/equipment/repairOrder.js deleted file mode 100644 index 0959150..0000000 --- a/mes-ui/src/api/mes/equipment/repairOrder.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询设备维修单列表 -export function listRepairOrder(query) { - return request({ - url: '/equipment/repairOrder/list', - method: 'get', - params: query - }) -} - -// 查询设备维修单详细 -export function getRepairOrder(id) { - return request({ - url: '/equipment/repairOrder/' + id, - method: 'get' - }) -} - -// 新增设备维修单 -export function addRepairOrder(data) { - return request({ - url: '/equipment/repairOrder', - method: 'post', - data: data - }) -} - -// 修改设备维修单 -export function updateRepairOrder(data) { - return request({ - url: '/equipment/repairOrder', - method: 'put', - data: data - }) -} - -// 删除设备维修单 -export function delRepairOrder(id) { - return request({ - url: '/equipment/repairOrder/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/finance/payroll.js b/mes-ui/src/api/mes/finance/payroll.js deleted file mode 100644 index 055ed73..0000000 --- a/mes-ui/src/api/mes/finance/payroll.js +++ /dev/null @@ -1,61 +0,0 @@ -import request from '@/utils/request' - -// 查询工资单列表 -export function listPayroll(query) { - return request({ - url: '/finance/payroll/list', - method: 'get', - params: query - }) -} - -// 查询工资单详细 -export function getPayroll(id) { - return request({ - url: '/finance/payroll/' + id, - method: 'get' - }) -} - -// 新增工资单 -export function addPayroll(data) { - return request({ - url: '/finance/payroll', - method: 'post', - data: data - }) -} - -// 修改工资单 -export function updatePayroll(data) { - return request({ - url: '/finance/payroll', - method: 'put', - data: data - }) -} - -// 删除工资单 -export function delPayroll(id) { - return request({ - url: '/finance/payroll/' + id, - method: 'delete' - }) -} - -// 工资单预览 -export function payRollPreview(ids) { - return request({ - url: '/finance/payroll/preview/' + ids, - method: 'get' - }) -} - -// 批量新增工资单 -export function batchAdd(list) { - return request({ - url: '/finance/payroll/batchAdd', - method: 'post', - data: list - }) -} diff --git a/mes-ui/src/api/mes/finance/pieceWagePlan.js b/mes-ui/src/api/mes/finance/pieceWagePlan.js deleted file mode 100644 index eb2d372..0000000 --- a/mes-ui/src/api/mes/finance/pieceWagePlan.js +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request' - -// 查询计件工资方案列表 -export function listPieceWagePlan(query) { - return request({ - url: '/finance/pieceWagePlan/list', - method: 'get', - params: query - }) -} - -// 查询计件工资方案详细 -export function getPieceWagePlan(id) { - return request({ - url: '/finance/pieceWagePlan/' + id, - method: 'get' - }) -} - -// 新增计件工资方案 -export function addPieceWagePlan(data) { - return request({ - url: '/finance/pieceWagePlan', - method: 'post', - data: data - }) -} - -// 修改计件工资方案 -export function updatePieceWagePlan(data) { - return request({ - url: '/finance/pieceWagePlan', - method: 'put', - data: data - }) -} - -// 删除计件工资方案 -export function delPieceWagePlan(id) { - return request({ - url: '/finance/pieceWagePlan/' + id, - method: 'delete' - }) -} - -// 保存计件工资方案 -export function savePieceWagePlan(data) { - return request({ - url: '/finance/pieceWagePlan/save', - method: 'post', - data: data - }) -} diff --git a/mes-ui/src/api/mes/index.js b/mes-ui/src/api/mes/index.js deleted file mode 100644 index 30a25b2..0000000 --- a/mes-ui/src/api/mes/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import request from "@/utils/request"; - -// 获取产能走势图 -export function outputTrend(query) { - return request({ - url: "/statement/pcIndex/outputTrend", - method: "get", - params: query, - }); -} - -// 工单延期率 -export function defermentFactor(query) { - return request({ - url: "/statement/pcIndex/defermentFactor", - method: "get", - params: query, - }); -} - -// 生产合格率 -export function qualificationRate(query) { - return request({ - url: "/statement/pcIndex/qualificationRate", - method: "get", - params: query, - }); -} - -// 不合格原因 -export function unqualifiedReason(query) { - return request({ - url: "/statement/pcIndex/unqualifiedReason", - method: "get", - params: query, - }); -} diff --git a/mes-ui/src/api/mes/integration/integrateDataSource.js b/mes-ui/src/api/mes/integration/integrateDataSource.js deleted file mode 100644 index cd0fa3f..0000000 --- a/mes-ui/src/api/mes/integration/integrateDataSource.js +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request' - -// 查询集成数据源列表 -export function listIntegrateDataSource(query) { - return request({ - url: '/integrateDataSource/list', - method: 'get', - params: query - }) -} - -// 查询集成数据源详细 -export function getIntegrateDataSource(id) { - return request({ - url: '/integrateDataSource/' + id, - method: 'get' - }) -} - -// 新增集成数据源 -export function addIntegrateDataSource(data) { - return request({ - url: '/integrateDataSource', - method: 'post', - data: data - }) -} - -// 修改集成数据源 -export function updateIntegrateDataSource(data) { - return request({ - url: '/integrateDataSource', - method: 'put', - data: data - }) -} - -// 删除集成数据源 -export function delIntegrateDataSource(id) { - return request({ - url: '/integrateDataSource/' + id, - method: 'delete' - }) -} - -// 测试连接 -export function testConnection(data) { - return request({ - url: '/integrateDataSource/test', - method: 'post', - data: data - }) -} diff --git a/mes-ui/src/api/mes/integration/integratePlan.js b/mes-ui/src/api/mes/integration/integratePlan.js deleted file mode 100644 index 60dcaaa..0000000 --- a/mes-ui/src/api/mes/integration/integratePlan.js +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request' - -// 查询集成方案列表 -export function listIntegratePlan(query) { - return request({ - url: '/integratePlan/list', - method: 'get', - params: query - }) -} - -// 查询集成方案详细 -export function getIntegratePlan(id) { - return request({ - url: '/integratePlan/' + id, - method: 'get' - }) -} - -// 新增集成方案 -export function addIntegratePlan(data) { - return request({ - url: '/integratePlan', - method: 'post', - data: data - }) -} - -// 修改集成方案 -export function updateIntegratePlan(data) { - return request({ - url: '/integratePlan', - method: 'put', - data: data - }) -} - -// 删除集成方案 -export function delIntegratePlan(id) { - return request({ - url: '/integratePlan/' + id, - method: 'delete' - }) -} - -// 查询mes系统中的所有属性 -export function mesField(query) { - return request({ - url: '/integratePlan/mesFieldList', - method: 'get', - params: query - }) -} diff --git a/mes-ui/src/api/mes/masterdata/bom.js b/mes-ui/src/api/mes/masterdata/bom.js deleted file mode 100644 index 71ff4e1..0000000 --- a/mes-ui/src/api/mes/masterdata/bom.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询物料BOM列表 -export function listBom(query) { - return request({ - url: '/masterdata/bom/list', - method: 'get', - params: query - }) -} - -// 查询物料BOM详细 -export function getBom(id) { - return request({ - url: '/masterdata/bom/' + id, - method: 'get' - }) -} - -// 新增物料BOM -export function addBom(data) { - return request({ - url: '/masterdata/bom', - method: 'post', - data: data - }) -} - -// 修改物料BOM -export function updateBom(data) { - return request({ - url: '/masterdata/bom', - method: 'put', - data: data - }) -} - -// 删除物料BOM -export function delBom(id) { - return request({ - url: '/masterdata/bom/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/customer.js b/mes-ui/src/api/mes/masterdata/customer.js deleted file mode 100644 index 021559a..0000000 --- a/mes-ui/src/api/mes/masterdata/customer.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询客户列表 -export function listCustomer(query) { - return request({ - url: '/masterdata/customer/list', - method: 'get', - params: query - }) -} - -// 查询客户详细 -export function getCustomer(id) { - return request({ - url: '/masterdata/customer/' + id, - method: 'get' - }) -} - -// 新增客户 -export function addCustomer(data) { - return request({ - url: '/masterdata/customer', - method: 'post', - data: data - }) -} - -// 修改客户 -export function updateCustomer(data) { - return request({ - url: '/masterdata/customer', - method: 'put', - data: data - }) -} - -// 删除客户 -export function delCustomer(id) { - return request({ - url: '/masterdata/customer/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/material.js b/mes-ui/src/api/mes/masterdata/material.js deleted file mode 100644 index bc435f9..0000000 --- a/mes-ui/src/api/mes/masterdata/material.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询物料列表 -export function listMaterial(query) { - return request({ - url: '/masterdata/material/list', - method: 'get', - params: query - }) -} - -// 查询物料详细 -export function getMaterial(id) { - return request({ - url: '/masterdata/material/' + id, - method: 'get' - }) -} - -// 新增物料 -export function addMaterial(data) { - return request({ - url: '/masterdata/material', - method: 'post', - data: data - }) -} - -// 修改物料 -export function updateMaterial(data) { - return request({ - url: '/masterdata/material', - method: 'put', - data: data - }) -} - -// 删除物料 -export function delMaterial(id) { - return request({ - url: '/masterdata/material/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/materialClass.js b/mes-ui/src/api/mes/masterdata/materialClass.js deleted file mode 100644 index 2bfa6cb..0000000 --- a/mes-ui/src/api/mes/masterdata/materialClass.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询物料分类列表 -export function listMaterialClass(query) { - return request({ - url: '/masterdata/materialClass/list', - method: 'get', - params: query - }) -} - -// 查询物料分类详细 -export function getMaterialClass(id) { - return request({ - url: '/masterdata/materialClass/' + id, - method: 'get' - }) -} - -// 新增物料分类 -export function addMaterialClass(data) { - return request({ - url: '/masterdata/materialClass', - method: 'post', - data: data - }) -} - -// 修改物料分类 -export function updateMaterialClass(data) { - return request({ - url: '/masterdata/materialClass', - method: 'put', - data: data - }) -} - -// 删除物料分类 -export function delMaterialClass(id) { - return request({ - url: '/masterdata/materialClass/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/station.js b/mes-ui/src/api/mes/masterdata/station.js deleted file mode 100644 index 2065fb6..0000000 --- a/mes-ui/src/api/mes/masterdata/station.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询工位列表 -export function listStation(query) { - return request({ - url: '/masterdata/station/list', - method: 'get', - params: query - }) -} - -// 查询工位详细 -export function getStation(id) { - return request({ - url: '/masterdata/station/' + id, - method: 'get' - }) -} - -// 新增工位 -export function addStation(data) { - return request({ - url: '/masterdata/station', - method: 'post', - data: data - }) -} - -// 修改工位 -export function updateStation(data) { - return request({ - url: '/masterdata/station', - method: 'put', - data: data - }) -} - -// 删除工位 -export function delStation(id) { - return request({ - url: '/masterdata/station/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/unit.js b/mes-ui/src/api/mes/masterdata/unit.js deleted file mode 100644 index 5b6aa0d..0000000 --- a/mes-ui/src/api/mes/masterdata/unit.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询计量单位列表 -export function listUnit(query) { - return request({ - url: '/masterdata/unit/list', - method: 'get', - params: query - }) -} - -// 查询计量单位详细 -export function getUnit(id) { - return request({ - url: '/masterdata/unit/' + id, - method: 'get' - }) -} - -// 新增计量单位 -export function addUnit(data) { - return request({ - url: '/masterdata/unit', - method: 'post', - data: data - }) -} - -// 修改计量单位 -export function updateUnit(data) { - return request({ - url: '/masterdata/unit', - method: 'put', - data: data - }) -} - -// 删除计量单位 -export function delUnit(id) { - return request({ - url: '/masterdata/unit/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/unitChange.js b/mes-ui/src/api/mes/masterdata/unitChange.js deleted file mode 100644 index 4b44ce9..0000000 --- a/mes-ui/src/api/mes/masterdata/unitChange.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询计量单位转换列表 -export function listUnitChange(query) { - return request({ - url: '/masterdata/unitChange/list', - method: 'get', - params: query - }) -} - -// 查询计量单位转换详细 -export function getUnitChange(id) { - return request({ - url: '/masterdata/unitChange/' + id, - method: 'get' - }) -} - -// 新增计量单位转换 -export function addUnitChange(data) { - return request({ - url: '/masterdata/unitChange', - method: 'post', - data: data - }) -} - -// 修改计量单位转换 -export function updateUnitChange(data) { - return request({ - url: '/masterdata/unitChange', - method: 'put', - data: data - }) -} - -// 删除计量单位转换 -export function delUnitChange(id) { - return request({ - url: '/masterdata/unitChange/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/masterdata/workshop.js b/mes-ui/src/api/mes/masterdata/workshop.js deleted file mode 100644 index b717530..0000000 --- a/mes-ui/src/api/mes/masterdata/workshop.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询车间列表 -export function listWorkshop(query) { - return request({ - url: '/masterdata/workshop/list', - method: 'get', - params: query - }) -} - -// 查询车间详细 -export function getWorkshop(id) { - return request({ - url: '/masterdata/workshop/' + id, - method: 'get' - }) -} - -// 新增车间 -export function addWorkshop(data) { - return request({ - url: '/masterdata/workshop', - method: 'post', - data: data - }) -} - -// 修改车间 -export function updateWorkshop(data) { - return request({ - url: '/masterdata/workshop', - method: 'put', - data: data - }) -} - -// 删除车间 -export function delWorkshop(id) { - return request({ - url: '/masterdata/workshop/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/production/process.js b/mes-ui/src/api/mes/production/process.js deleted file mode 100644 index 66602c6..0000000 --- a/mes-ui/src/api/mes/production/process.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询工序列表 -export function listProcess(query) { - return request({ - url: '/production/process/list', - method: 'get', - params: query - }) -} - -// 查询工序详细 -export function getProcess(id) { - return request({ - url: '/production/process/' + id, - method: 'get' - }) -} - -// 新增工序 -export function addProcess(data) { - return request({ - url: '/production/process', - method: 'post', - data: data - }) -} - -// 修改工序 -export function updateProcess(data) { - return request({ - url: '/production/process', - method: 'put', - data: data - }) -} - -// 删除工序 -export function delProcess(id) { - return request({ - url: '/production/process/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/production/report.js b/mes-ui/src/api/mes/production/report.js deleted file mode 100644 index dc38f47..0000000 --- a/mes-ui/src/api/mes/production/report.js +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request' - -// 查询报工单列表 -export function listReport(query) { - return request({ - url: '/production/report/list', - method: 'get', - params: query - }) -} - -// 查询报工单详细 -export function getReport(id) { - return request({ - url: '/production/report/' + id, - method: 'get' - }) -} - -// 新增报工单 -export function addReport(data) { - return request({ - url: '/production/report', - method: 'post', - data: data - }) -} - -// 修改报工单 -export function updateReport(data) { - return request({ - url: '/production/report', - method: 'put', - data: data - }) -} - -// 删除报工单 -export function delReport(id) { - return request({ - url: '/production/report/' + id, - method: 'delete' - }) -} - -// 批量新增/修改报工单 -export function batchSave(data) { - return request({ - url: '/production/report/batchSave', - method: 'post', - data: data - }) -} diff --git a/mes-ui/src/api/mes/production/route.js b/mes-ui/src/api/mes/production/route.js deleted file mode 100644 index 811315d..0000000 --- a/mes-ui/src/api/mes/production/route.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询工序路线列表 -export function listRoute(query) { - return request({ - url: '/production/route/list', - method: 'get', - params: query - }) -} - -// 查询工序路线详细 -export function getRoute(id) { - return request({ - url: '/production/route/' + id, - method: 'get' - }) -} - -// 新增工序路线 -export function addRoute(data) { - return request({ - url: '/production/route', - method: 'post', - data: data - }) -} - -// 修改工序路线 -export function updateRoute(data) { - return request({ - url: '/production/route', - method: 'put', - data: data - }) -} - -// 删除工序路线 -export function delRoute(id) { - return request({ - url: '/production/route/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/production/workOrder.js b/mes-ui/src/api/mes/production/workOrder.js deleted file mode 100644 index 953791a..0000000 --- a/mes-ui/src/api/mes/production/workOrder.js +++ /dev/null @@ -1,80 +0,0 @@ -import request from '@/utils/request' - -// 查询工单列表 -export function listWorkOrder(query) { - return request({ - url: '/production/workOrder/list', - method: 'get', - params: query - }) -} - -// 查询工单详细 -export function getWorkOrder(id) { - return request({ - url: '/production/workOrder/' + id, - method: 'get' - }) -} - -// 查询工单详细 -export function getWorkOrderByEntryId(id) { - console.log("222222222222222") - return request({ - url: '/production/workOrder/getInfoByEntryId/' + id, - method: 'get' - }) -} - -// 新增工单 -export function addWorkOrder(data) { - return request({ - url: '/production/workOrder', - method: 'post', - data: data - }) -} - -// 批量新增工单 -export function batchAddWorkOrder(data) { - return request({ - url: '/production/workOrder/batchAdd', - method: 'post', - data: data - }) -} - -// 修改工单 -export function updateWorkOrder(data) { - return request({ - url: '/production/workOrder', - method: 'put', - data: data - }) -} - -// 删除工单 -export function delWorkOrder(id) { - return request({ - url: '/production/workOrder/' + id, - method: 'delete' - }) -} - -// 修改工单生产状态 -export function editProStatus(params) { - return request({ - url: '/production/workOrder/editProStatus', - method: 'put', - params: params - }) -} - -//预览计划排产的生产工单 -export function listWorkOrderPreview(params) { - return request({ - url: '/production/workOrder/preview', - method: 'get', - params: params - }) -} diff --git a/mes-ui/src/api/mes/quality/qualityLevel.js b/mes-ui/src/api/mes/quality/qualityLevel.js deleted file mode 100644 index 435aaf5..0000000 --- a/mes-ui/src/api/mes/quality/qualityLevel.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询质检等级列表 -export function listQualityLevel(query) { - return request({ - url: '/quality/qualityLevel/list', - method: 'get', - params: query - }) -} - -// 查询质检等级详细 -export function getQualityLevel(id) { - return request({ - url: '/quality/qualityLevel/' + id, - method: 'get' - }) -} - -// 新增质检等级 -export function addQualityLevel(data) { - return request({ - url: '/quality/qualityLevel', - method: 'post', - data: data - }) -} - -// 修改质检等级 -export function updateQualityLevel(data) { - return request({ - url: '/quality/qualityLevel', - method: 'put', - data: data - }) -} - -// 删除质检等级 -export function delQualityLevel(id) { - return request({ - url: '/quality/qualityLevel/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/quality/reason.js b/mes-ui/src/api/mes/quality/reason.js deleted file mode 100644 index 4c525fb..0000000 --- a/mes-ui/src/api/mes/quality/reason.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询质检原因列表 -export function listReason(query) { - return request({ - url: '/quality/reason/list', - method: 'get', - params: query - }) -} - -// 查询质检原因详细 -export function getReason(id) { - return request({ - url: '/quality/reason/' + id, - method: 'get' - }) -} - -// 新增质检原因 -export function addReason(data) { - return request({ - url: '/quality/reason', - method: 'post', - data: data - }) -} - -// 修改质检原因 -export function updateReason(data) { - return request({ - url: '/quality/reason', - method: 'put', - data: data - }) -} - -// 删除质检原因 -export function delReason(id) { - return request({ - url: '/quality/reason/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/quality/reportQuality.js b/mes-ui/src/api/mes/quality/reportQuality.js deleted file mode 100644 index a49d4c3..0000000 --- a/mes-ui/src/api/mes/quality/reportQuality.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询报工质检单列表 -export function listReportQuality(query) { - return request({ - url: '/quality/reportQuality/list', - method: 'get', - params: query - }) -} - -// 查询报工质检单详细 -export function getReportQuality(id) { - return request({ - url: '/quality/reportQuality/' + id, - method: 'get' - }) -} - -// 新增报工质检单 -export function addReportQuality(data) { - return request({ - url: '/quality/reportQuality', - method: 'post', - data: data - }) -} - -// 修改报工质检单 -export function updateReportQuality(data) { - return request({ - url: '/quality/reportQuality', - method: 'put', - data: data - }) -} - -// 删除报工质检单 -export function delReportQuality(id) { - return request({ - url: '/quality/reportQuality/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/sale/saleOrder.js b/mes-ui/src/api/mes/sale/saleOrder.js deleted file mode 100644 index 80b7b59..0000000 --- a/mes-ui/src/api/mes/sale/saleOrder.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询销售订单列表 -export function listSaleOrder(query) { - return request({ - url: '/sale/saleOrder/list', - method: 'get', - params: query - }) -} - -// 查询销售订单详细 -export function getSaleOrder(id) { - return request({ - url: '/sale/saleOrder/' + id, - method: 'get' - }) -} - -// 新增销售订单 -export function addSaleOrder(data) { - return request({ - url: '/sale/saleOrder', - method: 'post', - data: data - }) -} - -// 修改销售订单 -export function updateSaleOrder(data) { - return request({ - url: '/sale/saleOrder', - method: 'put', - data: data - }) -} - -// 删除销售订单 -export function delSaleOrder(id) { - return request({ - url: '/sale/saleOrder/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/system/carousel.js b/mes-ui/src/api/mes/system/carousel.js deleted file mode 100644 index 4203111..0000000 --- a/mes-ui/src/api/mes/system/carousel.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询轮播图列表 -export function listCarousel(query) { - return request({ - url: '/system/carousel/list', - method: 'get', - params: query - }) -} - -// 查询轮播图详细 -export function getCarousel(id) { - return request({ - url: '/system/carousel/' + id, - method: 'get' - }) -} - -// 新增轮播图 -export function addCarousel(data) { - return request({ - url: '/system/carousel', - method: 'post', - data: data - }) -} - -// 修改轮播图 -export function updateCarousel(data) { - return request({ - url: '/system/carousel', - method: 'put', - data: data - }) -} - -// 删除轮播图 -export function delCarousel(id) { - return request({ - url: '/system/carousel/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/warehouse/inventory.js b/mes-ui/src/api/mes/warehouse/inventory.js deleted file mode 100644 index bbbac8b..0000000 --- a/mes-ui/src/api/mes/warehouse/inventory.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询即时库存列表 -export function listInventory(query) { - return request({ - url: '/warehouse/inventory/list', - method: 'get', - params: query - }) -} - -// 查询即时库存详细 -export function getInventory(aa) { - return request({ - url: '/warehouse/inventory/' + aa, - method: 'get' - }) -} - -// 新增即时库存 -export function addInventory(data) { - return request({ - url: '/warehouse/inventory', - method: 'post', - data: data - }) -} - -// 修改即时库存 -export function updateInventory(data) { - return request({ - url: '/warehouse/inventory', - method: 'put', - data: data - }) -} - -// 删除即时库存 -export function delInventory(aa) { - return request({ - url: '/warehouse/inventory/' + aa, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/warehouse/manufactureInto.js b/mes-ui/src/api/mes/warehouse/manufactureInto.js deleted file mode 100644 index 0b077e9..0000000 --- a/mes-ui/src/api/mes/warehouse/manufactureInto.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询完工入库单列表 -export function listManufactureInto(query) { - return request({ - url: '/warehouse/manufactureInto/list', - method: 'get', - params: query - }) -} - -// 查询完工入库单详细 -export function getManufactureInto(id) { - return request({ - url: '/warehouse/manufactureInto/' + id, - method: 'get' - }) -} - -// 新增完工入库单 -export function addManufactureInto(data) { - return request({ - url: '/warehouse/manufactureInto', - method: 'post', - data: data - }) -} - -// 修改完工入库单 -export function updateManufactureInto(data) { - return request({ - url: '/warehouse/manufactureInto', - method: 'put', - data: data - }) -} - -// 删除完工入库单 -export function delManufactureInto(id) { - return request({ - url: '/warehouse/manufactureInto/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/warehouse/proPick.js b/mes-ui/src/api/mes/warehouse/proPick.js deleted file mode 100644 index 49240c1..0000000 --- a/mes-ui/src/api/mes/warehouse/proPick.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询生产领料单列表 -export function listProPick(query) { - return request({ - url: '/warehouse/proPick/list', - method: 'get', - params: query - }) -} - -// 查询生产领料单详细 -export function getProPick(id) { - return request({ - url: '/warehouse/proPick/' + id, - method: 'get' - }) -} - -// 新增生产领料单 -export function addProPick(data) { - return request({ - url: '/warehouse/proPick', - method: 'post', - data: data - }) -} - -// 修改生产领料单 -export function updateProPick(data) { - return request({ - url: '/warehouse/proPick', - method: 'put', - data: data - }) -} - -// 删除生产领料单 -export function delProPick(id) { - return request({ - url: '/warehouse/proPick/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/mes/warehouse/warehouse.js b/mes-ui/src/api/mes/warehouse/warehouse.js deleted file mode 100644 index bbbc736..0000000 --- a/mes-ui/src/api/mes/warehouse/warehouse.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询仓库信息列表 -export function listWarehouse(query) { - return request({ - url: '/warehouse/warehouse/list', - method: 'get', - params: query - }) -} - -// 查询仓库信息详细 -export function getWarehouse(id) { - return request({ - url: '/warehouse/warehouse/' + id, - method: 'get' - }) -} - -// 新增仓库信息 -export function addWarehouse(data) { - return request({ - url: '/warehouse/warehouse', - method: 'post', - data: data - }) -} - -// 修改仓库信息 -export function updateWarehouse(data) { - return request({ - url: '/warehouse/warehouse', - method: 'put', - data: data - }) -} - -// 删除仓库信息 -export function delWarehouse(id) { - return request({ - url: '/warehouse/warehouse/' + id, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/cache.js b/mes-ui/src/api/monitor/cache.js deleted file mode 100644 index 72c5f6a..0000000 --- a/mes-ui/src/api/monitor/cache.js +++ /dev/null @@ -1,57 +0,0 @@ -import request from '@/utils/request' - -// 查询缓存详细 -export function getCache() { - return request({ - url: '/monitor/cache', - method: 'get' - }) -} - -// 查询缓存名称列表 -export function listCacheName() { - return request({ - url: '/monitor/cache/getNames', - method: 'get' - }) -} - -// 查询缓存键名列表 -export function listCacheKey(cacheName) { - return request({ - url: '/monitor/cache/getKeys/' + cacheName, - method: 'get' - }) -} - -// 查询缓存内容 -export function getCacheValue(cacheName, cacheKey) { - return request({ - url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, - method: 'get' - }) -} - -// 清理指定名称缓存 -export function clearCacheName(cacheName) { - return request({ - url: '/monitor/cache/clearCacheName/' + cacheName, - method: 'delete' - }) -} - -// 清理指定键名缓存 -export function clearCacheKey(cacheKey) { - return request({ - url: '/monitor/cache/clearCacheKey/' + cacheKey, - method: 'delete' - }) -} - -// 清理全部缓存 -export function clearCacheAll() { - return request({ - url: '/monitor/cache/clearCacheAll', - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/job.js b/mes-ui/src/api/monitor/job.js deleted file mode 100644 index 3815569..0000000 --- a/mes-ui/src/api/monitor/job.js +++ /dev/null @@ -1,71 +0,0 @@ -import request from '@/utils/request' - -// 查询定时任务调度列表 -export function listJob(query) { - return request({ - url: '/monitor/job/list', - method: 'get', - params: query - }) -} - -// 查询定时任务调度详细 -export function getJob(jobId) { - return request({ - url: '/monitor/job/' + jobId, - method: 'get' - }) -} - -// 新增定时任务调度 -export function addJob(data) { - return request({ - url: '/monitor/job', - method: 'post', - data: data - }) -} - -// 修改定时任务调度 -export function updateJob(data) { - return request({ - url: '/monitor/job', - method: 'put', - data: data - }) -} - -// 删除定时任务调度 -export function delJob(jobId) { - return request({ - url: '/monitor/job/' + jobId, - method: 'delete' - }) -} - -// 任务状态修改 -export function changeJobStatus(jobId, status) { - const data = { - jobId, - status - } - return request({ - url: '/monitor/job/changeStatus', - method: 'put', - data: data - }) -} - - -// 定时任务立即执行一次 -export function runJob(jobId, jobGroup) { - const data = { - jobId, - jobGroup - } - return request({ - url: '/monitor/job/run', - method: 'put', - data: data - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/monitor/jobLog.js b/mes-ui/src/api/monitor/jobLog.js deleted file mode 100644 index 6e0be61..0000000 --- a/mes-ui/src/api/monitor/jobLog.js +++ /dev/null @@ -1,26 +0,0 @@ -import request from '@/utils/request' - -// 查询调度日志列表 -export function listJobLog(query) { - return request({ - url: '/monitor/jobLog/list', - method: 'get', - params: query - }) -} - -// 删除调度日志 -export function delJobLog(jobLogId) { - return request({ - url: '/monitor/jobLog/' + jobLogId, - method: 'delete' - }) -} - -// 清空调度日志 -export function cleanJobLog() { - return request({ - url: '/monitor/jobLog/clean', - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/logininfor.js b/mes-ui/src/api/monitor/logininfor.js deleted file mode 100644 index 4d112b7..0000000 --- a/mes-ui/src/api/monitor/logininfor.js +++ /dev/null @@ -1,34 +0,0 @@ -import request from '@/utils/request' - -// 查询登录日志列表 -export function list(query) { - return request({ - url: '/monitor/logininfor/list', - method: 'get', - params: query - }) -} - -// 删除登录日志 -export function delLogininfor(infoId) { - return request({ - url: '/monitor/logininfor/' + infoId, - method: 'delete' - }) -} - -// 解锁用户登录状态 -export function unlockLogininfor(userName) { - return request({ - url: '/monitor/logininfor/unlock/' + userName, - method: 'get' - }) -} - -// 清空登录日志 -export function cleanLogininfor() { - return request({ - url: '/monitor/logininfor/clean', - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/online.js b/mes-ui/src/api/monitor/online.js deleted file mode 100644 index bd22137..0000000 --- a/mes-ui/src/api/monitor/online.js +++ /dev/null @@ -1,18 +0,0 @@ -import request from '@/utils/request' - -// 查询在线用户列表 -export function list(query) { - return request({ - url: '/monitor/online/list', - method: 'get', - params: query - }) -} - -// 强退用户 -export function forceLogout(tokenId) { - return request({ - url: '/monitor/online/' + tokenId, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/operlog.js b/mes-ui/src/api/monitor/operlog.js deleted file mode 100644 index a04bca8..0000000 --- a/mes-ui/src/api/monitor/operlog.js +++ /dev/null @@ -1,26 +0,0 @@ -import request from '@/utils/request' - -// 查询操作日志列表 -export function list(query) { - return request({ - url: '/monitor/operlog/list', - method: 'get', - params: query - }) -} - -// 删除操作日志 -export function delOperlog(operId) { - return request({ - url: '/monitor/operlog/' + operId, - method: 'delete' - }) -} - -// 清空操作日志 -export function cleanOperlog() { - return request({ - url: '/monitor/operlog/clean', - method: 'delete' - }) -} diff --git a/mes-ui/src/api/monitor/server.js b/mes-ui/src/api/monitor/server.js deleted file mode 100644 index e1f9ca2..0000000 --- a/mes-ui/src/api/monitor/server.js +++ /dev/null @@ -1,9 +0,0 @@ -import request from '@/utils/request' - -// 获取服务信息 -export function getServer() { - return request({ - url: '/monitor/server', - method: 'get' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/system/config.js b/mes-ui/src/api/system/config.js deleted file mode 100644 index a404d82..0000000 --- a/mes-ui/src/api/system/config.js +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/utils/request' - -// 查询参数列表 -export function listConfig(query) { - return request({ - url: '/system/config/list', - method: 'get', - params: query - }) -} - -// 查询参数详细 -export function getConfig(configId) { - return request({ - url: '/system/config/' + configId, - method: 'get' - }) -} - -// 根据参数键名查询参数值 -export function getConfigKey(configKey) { - return request({ - url: '/system/config/configKey/' + configKey, - method: 'get' - }) -} - -// 新增参数配置 -export function addConfig(data) { - return request({ - url: '/system/config', - method: 'post', - data: data - }) -} - -// 修改参数配置 -export function updateConfig(data) { - return request({ - url: '/system/config', - method: 'put', - data: data - }) -} - -// 删除参数配置 -export function delConfig(configId) { - return request({ - url: '/system/config/' + configId, - method: 'delete' - }) -} - -// 刷新参数缓存 -export function refreshCache() { - return request({ - url: '/system/config/refreshCache', - method: 'delete' - }) -} diff --git a/mes-ui/src/api/system/dept.js b/mes-ui/src/api/system/dept.js deleted file mode 100644 index fc943cd..0000000 --- a/mes-ui/src/api/system/dept.js +++ /dev/null @@ -1,52 +0,0 @@ -import request from '@/utils/request' - -// 查询部门列表 -export function listDept(query) { - return request({ - url: '/system/dept/list', - method: 'get', - params: query - }) -} - -// 查询部门列表(排除节点) -export function listDeptExcludeChild(deptId) { - return request({ - url: '/system/dept/list/exclude/' + deptId, - method: 'get' - }) -} - -// 查询部门详细 -export function getDept(deptId) { - return request({ - url: '/system/dept/' + deptId, - method: 'get' - }) -} - -// 新增部门 -export function addDept(data) { - return request({ - url: '/system/dept', - method: 'post', - data: data - }) -} - -// 修改部门 -export function updateDept(data) { - return request({ - url: '/system/dept', - method: 'put', - data: data - }) -} - -// 删除部门 -export function delDept(deptId) { - return request({ - url: '/system/dept/' + deptId, - method: 'delete' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/system/dict/data.js b/mes-ui/src/api/system/dict/data.js deleted file mode 100644 index 6c9eb79..0000000 --- a/mes-ui/src/api/system/dict/data.js +++ /dev/null @@ -1,52 +0,0 @@ -import request from '@/utils/request' - -// 查询字典数据列表 -export function listData(query) { - return request({ - url: '/system/dict/data/list', - method: 'get', - params: query - }) -} - -// 查询字典数据详细 -export function getData(dictCode) { - return request({ - url: '/system/dict/data/' + dictCode, - method: 'get' - }) -} - -// 根据字典类型查询字典数据信息 -export function getDicts(dictType) { - return request({ - url: '/system/dict/data/type/' + dictType, - method: 'get' - }) -} - -// 新增字典数据 -export function addData(data) { - return request({ - url: '/system/dict/data', - method: 'post', - data: data - }) -} - -// 修改字典数据 -export function updateData(data) { - return request({ - url: '/system/dict/data', - method: 'put', - data: data - }) -} - -// 删除字典数据 -export function delData(dictCode) { - return request({ - url: '/system/dict/data/' + dictCode, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/system/dict/type.js b/mes-ui/src/api/system/dict/type.js deleted file mode 100644 index a7a6e01..0000000 --- a/mes-ui/src/api/system/dict/type.js +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/utils/request' - -// 查询字典类型列表 -export function listType(query) { - return request({ - url: '/system/dict/type/list', - method: 'get', - params: query - }) -} - -// 查询字典类型详细 -export function getType(dictId) { - return request({ - url: '/system/dict/type/' + dictId, - method: 'get' - }) -} - -// 新增字典类型 -export function addType(data) { - return request({ - url: '/system/dict/type', - method: 'post', - data: data - }) -} - -// 修改字典类型 -export function updateType(data) { - return request({ - url: '/system/dict/type', - method: 'put', - data: data - }) -} - -// 删除字典类型 -export function delType(dictId) { - return request({ - url: '/system/dict/type/' + dictId, - method: 'delete' - }) -} - -// 刷新字典缓存 -export function refreshCache() { - return request({ - url: '/system/dict/type/refreshCache', - method: 'delete' - }) -} - -// 获取字典选择框列表 -export function optionselect() { - return request({ - url: '/system/dict/type/optionselect', - method: 'get' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/system/menu.js b/mes-ui/src/api/system/menu.js deleted file mode 100644 index f6415c6..0000000 --- a/mes-ui/src/api/system/menu.js +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/utils/request' - -// 查询菜单列表 -export function listMenu(query) { - return request({ - url: '/system/menu/list', - method: 'get', - params: query - }) -} - -// 查询菜单详细 -export function getMenu(menuId) { - return request({ - url: '/system/menu/' + menuId, - method: 'get' - }) -} - -// 查询菜单下拉树结构 -export function treeselect() { - return request({ - url: '/system/menu/treeselect', - method: 'get' - }) -} - -// 根据角色ID查询菜单下拉树结构 -export function roleMenuTreeselect(roleId) { - return request({ - url: '/system/menu/roleMenuTreeselect/' + roleId, - method: 'get' - }) -} - -// 新增菜单 -export function addMenu(data) { - return request({ - url: '/system/menu', - method: 'post', - data: data - }) -} - -// 修改菜单 -export function updateMenu(data) { - return request({ - url: '/system/menu', - method: 'put', - data: data - }) -} - -// 删除菜单 -export function delMenu(menuId) { - return request({ - url: '/system/menu/' + menuId, - method: 'delete' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/system/notice.js b/mes-ui/src/api/system/notice.js deleted file mode 100644 index c274ea5..0000000 --- a/mes-ui/src/api/system/notice.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询公告列表 -export function listNotice(query) { - return request({ - url: '/system/notice/list', - method: 'get', - params: query - }) -} - -// 查询公告详细 -export function getNotice(noticeId) { - return request({ - url: '/system/notice/' + noticeId, - method: 'get' - }) -} - -// 新增公告 -export function addNotice(data) { - return request({ - url: '/system/notice', - method: 'post', - data: data - }) -} - -// 修改公告 -export function updateNotice(data) { - return request({ - url: '/system/notice', - method: 'put', - data: data - }) -} - -// 删除公告 -export function delNotice(noticeId) { - return request({ - url: '/system/notice/' + noticeId, - method: 'delete' - }) -} \ No newline at end of file diff --git a/mes-ui/src/api/system/post.js b/mes-ui/src/api/system/post.js deleted file mode 100644 index 1a8e9ca..0000000 --- a/mes-ui/src/api/system/post.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询岗位列表 -export function listPost(query) { - return request({ - url: '/system/post/list', - method: 'get', - params: query - }) -} - -// 查询岗位详细 -export function getPost(postId) { - return request({ - url: '/system/post/' + postId, - method: 'get' - }) -} - -// 新增岗位 -export function addPost(data) { - return request({ - url: '/system/post', - method: 'post', - data: data - }) -} - -// 修改岗位 -export function updatePost(data) { - return request({ - url: '/system/post', - method: 'put', - data: data - }) -} - -// 删除岗位 -export function delPost(postId) { - return request({ - url: '/system/post/' + postId, - method: 'delete' - }) -} diff --git a/mes-ui/src/api/system/role.js b/mes-ui/src/api/system/role.js deleted file mode 100644 index f13e6f4..0000000 --- a/mes-ui/src/api/system/role.js +++ /dev/null @@ -1,119 +0,0 @@ -import request from '@/utils/request' - -// 查询角色列表 -export function listRole(query) { - return request({ - url: '/system/role/list', - method: 'get', - params: query - }) -} - -// 查询角色详细 -export function getRole(roleId) { - return request({ - url: '/system/role/' + roleId, - method: 'get' - }) -} - -// 新增角色 -export function addRole(data) { - return request({ - url: '/system/role', - method: 'post', - data: data - }) -} - -// 修改角色 -export function updateRole(data) { - return request({ - url: '/system/role', - method: 'put', - data: data - }) -} - -// 角色数据权限 -export function dataScope(data) { - return request({ - url: '/system/role/dataScope', - method: 'put', - data: data - }) -} - -// 角色状态修改 -export function changeRoleStatus(roleId, status) { - const data = { - roleId, - status - } - return request({ - url: '/system/role/changeStatus', - method: 'put', - data: data - }) -} - -// 删除角色 -export function delRole(roleId) { - return request({ - url: '/system/role/' + roleId, - method: 'delete' - }) -} - -// 查询角色已授权用户列表 -export function allocatedUserList(query) { - return request({ - url: '/system/role/authUser/allocatedList', - method: 'get', - params: query - }) -} - -// 查询角色未授权用户列表 -export function unallocatedUserList(query) { - return request({ - url: '/system/role/authUser/unallocatedList', - method: 'get', - params: query - }) -} - -// 取消用户授权角色 -export function authUserCancel(data) { - return request({ - url: '/system/role/authUser/cancel', - method: 'put', - data: data - }) -} - -// 批量取消用户授权角色 -export function authUserCancelAll(data) { - return request({ - url: '/system/role/authUser/cancelAll', - method: 'put', - params: data - }) -} - -// 授权用户选择 -export function authUserSelectAll(data) { - return request({ - url: '/system/role/authUser/selectAll', - method: 'put', - params: data - }) -} - -// 根据角色ID查询部门树结构 -export function deptTreeSelect(roleId) { - return request({ - url: '/system/role/deptTree/' + roleId, - method: 'get' - }) -} diff --git a/mes-ui/src/api/system/user.js b/mes-ui/src/api/system/user.js deleted file mode 100644 index f2f76ef..0000000 --- a/mes-ui/src/api/system/user.js +++ /dev/null @@ -1,135 +0,0 @@ -import request from '@/utils/request' -import { parseStrEmpty } from "@/utils/ruoyi"; - -// 查询用户列表 -export function listUser(query) { - return request({ - url: '/system/user/list', - method: 'get', - params: query - }) -} - -// 查询用户详细 -export function getUser(userId) { - return request({ - url: '/system/user/' + parseStrEmpty(userId), - method: 'get' - }) -} - -// 新增用户 -export function addUser(data) { - return request({ - url: '/system/user', - method: 'post', - data: data - }) -} - -// 修改用户 -export function updateUser(data) { - return request({ - url: '/system/user', - method: 'put', - data: data - }) -} - -// 删除用户 -export function delUser(userId) { - return request({ - url: '/system/user/' + userId, - method: 'delete' - }) -} - -// 用户密码重置 -export function resetUserPwd(userId, password) { - const data = { - userId, - password - } - return request({ - url: '/system/user/resetPwd', - method: 'put', - data: data - }) -} - -// 用户状态修改 -export function changeUserStatus(userId, status) { - const data = { - userId, - status - } - return request({ - url: '/system/user/changeStatus', - method: 'put', - data: data - }) -} - -// 查询用户个人信息 -export function getUserProfile() { - return request({ - url: '/system/user/profile', - method: 'get' - }) -} - -// 修改用户个人信息 -export function updateUserProfile(data) { - return request({ - url: '/system/user/profile', - method: 'put', - data: data - }) -} - -// 用户密码重置 -export function updateUserPwd(oldPassword, newPassword) { - const data = { - oldPassword, - newPassword - } - return request({ - url: '/system/user/profile/updatePwd', - method: 'put', - params: data - }) -} - -// 用户头像上传 -export function uploadAvatar(data) { - return request({ - url: '/system/user/profile/avatar', - method: 'post', - data: data - }) -} - -// 查询授权角色 -export function getAuthRole(userId) { - return request({ - url: '/system/user/authRole/' + userId, - method: 'get' - }) -} - -// 保存授权角色 -export function updateAuthRole(data) { - return request({ - url: '/system/user/authRole', - method: 'put', - params: data - }) -} - -// 查询部门下拉树结构 -export function deptTreeSelect() { - return request({ - url: '/system/user/deptTree', - method: 'get' - }) -} diff --git a/mes-ui/src/api/tool/gen.js b/mes-ui/src/api/tool/gen.js deleted file mode 100644 index 4506927..0000000 --- a/mes-ui/src/api/tool/gen.js +++ /dev/null @@ -1,76 +0,0 @@ -import request from '@/utils/request' - -// 查询生成表数据 -export function listTable(query) { - return request({ - url: '/tool/gen/list', - method: 'get', - params: query - }) -} -// 查询db数据库列表 -export function listDbTable(query) { - return request({ - url: '/tool/gen/db/list', - method: 'get', - params: query - }) -} - -// 查询表详细信息 -export function getGenTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'get' - }) -} - -// 修改代码生成信息 -export function updateGenTable(data) { - return request({ - url: '/tool/gen', - method: 'put', - data: data - }) -} - -// 导入表 -export function importTable(data) { - return request({ - url: '/tool/gen/importTable', - method: 'post', - params: data - }) -} - -// 预览生成代码 -export function previewTable(tableId) { - return request({ - url: '/tool/gen/preview/' + tableId, - method: 'get' - }) -} - -// 删除表数据 -export function delTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'delete' - }) -} - -// 生成代码(自定义路径) -export function genCode(tableName) { - return request({ - url: '/tool/gen/genCode/' + tableName, - method: 'get' - }) -} - -// 同步数据库 -export function synchDb(tableName) { - return request({ - url: '/tool/gen/synchDb/' + tableName, - method: 'get' - }) -} diff --git a/mes-ui/src/assets/401_images/401.gif b/mes-ui/src/assets/401_images/401.gif deleted file mode 100644 index cd6e0d9433421b3f29d0ec0c40f755e354728000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164227 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⋘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 GY5fOuZZib{ diff --git a/mes-ui/src/assets/404_images/404.png b/mes-ui/src/assets/404_images/404.png deleted file mode 100644 index 3d8e2305cc973ad2121403aee4bf08728f76c461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98071 zcmZsD1yoe)_qGfpFmxy&-5?DTB3;rUAxKDvbVzqeiAZ-S3L@QI(jWrT-5rArH4O2c zxq5&1-u3_1I%_Gcbl>@Z)@`}0ni zgTxS1Xz2Sp5LyN$jB+`(TK2go0$*ON+wYG~Qz71pR)(>+cvvo`d01{Xdj)u2?ZXzy zmA;x1Nzp_;m7?it6=)ebdFi9=K=7-zt#9B^kGF`IzK;CC(qMy@r8#>WqG2@cS5uox zXbf0B@c&#i)!^b0Mb!?4K=50dqjrDj)8Y7T(OQwKjh4xB0;y*hgfuAsToL#vtY-x2 zcDPC4UD@TJ&X)ylS~p2s{Vm(V1wS(C*u6kTtf;l}x2;9RDSK|B+2Q|vU# z5g|>`3ves^tw-x#pW$kM%4o{)rRUjP-bFAxh4kKaDr2nlD0Ny3>QcfT2w<51UE`{O zQGN&5UTB2YKA@#pXv;7`0|{yiD)FUE4eA?4@$j%fYDMKsqFQWUi?UOjnyuv<1_{u= zug?(m3a+6reFd6hu*h(3OM4>q*mTc~Pg?D7J-n+TvnsoY9 zWoxbD->+xD=K*Q$(+jLna6%I4kA`x*GDPIgI-Zm%UVn5!@S7kc4LW0oj3yb?d`)8c z7ej523IBV$9&o#~u-m;%@UGl)D|$=WY^|@KLU`Ac)l*@|602_{T4+M7IA6dbP#2AL)Eg1u&)lV@(b^iSAa}Wv>^6+>!0CyZsvtcv1&Qq&svN z+sZThYEIutRzAD;PdEXgWle?>lIf5kVEHlvET1a{;shO{ zn-EQLhR|g}l#-=7bY$DeCw*BaO6=ZCIRr)2d3ye8*IdkaiCqEbd9ba|DSo;7ROxl@(%P?=XHjX#v%4uLDStHz#?vp;8Jp~psBrurXiozhE0`(5iED>LBhfh5__U^oInU|$yP zEjDz&{zwWAxMdUZr8h#Q=vPr46k)9@kV_jypUZrWZ3!8{4Gc-ISvP>EqE52=OPg%cn3_A1Z+SuWO*0}uNWds4s zAhHbNeJ>FWsaCAW5waW9L4FA9Wr=FLpr*j>!WUNfY>TSb`i)Yththth%76Sc@)}q} z#=A@s1{4@Z>WAs!^^cH?WYrfik`9X{fiIcaicws{R=?W(`}oTdF7Taj4mNRDu&>;I z{4zufM6pn&*L_0n^uS2Kp2m8rj=vHajm%)0ZyNTcn@wug^UjqFs9J#iwD=khPyY|B zktqP6M89)9&wx(|%4a*P;&Jc6s(^o8=aRB(4Kgwpm-fAp_?~bxq0|4UPCxmP54Nw` zf8KveXS@t^YI)NG0{})#k;X3S`owvLhXtN)LG8zL?>f|k6Y<^+zeU_~P(n_T3cesZ z8M$)|qkPrp{Yt_1HBT1+ zO$}G`mF#sBF264SZO#=YiEgoZnB0y+E+=?at|BLr{=?)Ir}<1cztP~%gOtGG__6o( zMm~b3uxF~!@$Upjl>b=+yK-RE^|!b6=#XmBAb0Kk0yP63l$@RoTOm8=ocSwp{*zOYGx+e}se(;LO3e6?ei2{2&&Vv#NqBGgg!wJ(!R2P`LBb7c^&8 z?_}TM;6eYN3D70K&z~p#{=4r}rQ6HpW`vHNQ6cYvu$FmNk@Ifi=~0v3F+WPqS*X{> z2_Nn)^R~a;O-srktbEh9S&aNYACRic7*z#8+=w0Mna;iy>`*~9X)GjuDJ%2()!vdB zZ0%@0nm{d0Hybg!I$Csmq{VC#z5?Jn182ITfa?C@E(zU!0=cu06u$Y?}# z)Q!Vd5YFX{PI!wE)k>WaaQkvEERB9y_+J|{$ekI8#RaR>HTob-4E2h#JB02*h^Df6 z+hbAf6XDe)%Bk-yG^;-KiykYn{3G^*W_{J-^WXPidjIz05b`1L?_RQm-0y&O7;DB? znhfbMQX7`Q)xWCPdi9+!bnTwM4~5>a6{jc@y+8h6f(8CFuG-$*J2Knb^#~b_$kXV(?y&%;wLJv#A=pR$wIksq9h{$)&wK4AHHGojB6 z2(7_D+CMG$3c1i4)v3GYWLSQ5Fi4E)uPOqkT_=lR{&dUcQ=+q{7G%ZnFRo#YhBB7T zpTT4KG6XDdObk4tDsUWL!nCY;*QhBHa&fhy=Rzuuu@v+LHImBfsx)g-H;d=!^}p?a zgG^77#$I}a7(~GRLzx^(#GUa*ujinA+$hxZSd|yfo)lV_E1uj==Sh=$LkwNEasOf) zT5`b0yEWGfLaG^o+eYhw|&EXwMkEM>mX1|P;97mZ;zVY)Zsr#NQ z_wXNtrD+7xw4BGGkPG2sC178@xc9VW`wjIKq1&9CoxjJoJ{NDBp#buct7%`48WHE) zC$>LXBJREU2b$<4faQak(xe%J!T?_wMX2wIi)RGlMfr1i&r78EsVhp4-iqCvF&mHG z4kS$mO(x`l|FPc44H*0NiCw@p1ufF6T1qrfZx zWV5;6dMF$~gZGYJq({OgEp7LSuk~T2jza-BbAVZV3a>nup0jCE;N8am$F1!WO{#9F z%ZtF*))3`(x4OT{&;Ibpq5mgm{eg5pR8mNE`+AdK3E!M1R^k^_?eqFd6IT^(Ix_RdbaCSknTxXyUb|;m z&nNLmSwmlEZ7K+W|5x57X?vWEy@v0lp0n|tEjaXJUEYw9gaX7 z^uv?6E_PQbj8#SqOIQ0dtdeinTHL0b>j}|=KjZ()=~AFKB8@fg?{KMr7-*`eVN9v2 z5+(3xlWu4Te*okrAKMW0)Vu@Z-fg&P#851~z%5(K3%P>WkTRft_~S4dR%F~-z-#%4erE*iyIUDsI_aw!@R(+*>ZLLojl=EX;6?#;ZLvr}?BDkWfMk8f46 zly8wLw37nqASMlS?e0US<+1v!ZuJu)o=388_yaKFMZa(&D8r_&%q$fZ3;!1>^11Gy zH&1jY#kjMB{(5BY4VdEIM{#~yf1SA&y(8`ZDF$CA#^sPyKho>0h@rMeW|863S2=5b zZI*LJ9-puF-3MKE)x!UULqU`HK!EVidubDLM*;EsR7K7@Orc9%wX6s~WvK{qfnBqS zdPL)Yb>-qs`Os_K<6M_n3M(u4Uxf>>_qOZ-@3gObHKXsUN)R2Leg&}D3?__yiWf2{ z_V(gf^NLae+P38aZ?Jgbun=?<`Y)FtSr$1)N&!<)Ij|Hl_DA<$3TbL0u@oA_Pu=53 zPo9Vv!!I_vf6b{+B`MUR`4m&}!#^f5CPR^?F3DHuO97sVgG>x75ne&Bz@{VV{7gnk zz8pm<GC_er@IEsh z=7|sF0pe@QiuD95$$$3Lq|hqpBYVqOF`P2;GOKCPD)>t;&-s!xZ6Jz5f8M#F4bB9D zOoaNMO_xXyn1JGe19K1ta!J0G{E&HVTagC;yuR9vu(I*GVb9~LyzHxGW96Qzj^QDC zE5ak9qmHPu7iTq@REe+X$-7)cl>80e4z-=L?xp<4*t2f}Kg7z~cc!4y2C3ucni?(e z75ZH8?}@;V(BeweHxn$bx($aD63nujoxUaXE=Bh5z3nT-JrVJl8`doS#?v+%74Wa9szPtaGOjx8g5fJYN_27HkJicm~v@1-<} z=W)j=oqqC*zV(;aQ(H2V33Wf}k58JCua0sVA6TvIxx@}&yk;iI5dXaG(c#y2Ia9d* z#BG`lPxe*;<8k0(!0r7>CAY`SYLb6L48Ai6O&lTPYx&rh(3%eL+-H*_-hgW~78pr{ zot~+JNFcA#<@circTpjM-F_~Dv}@90IQpwjj_|L$2aqngFHQcV>5gVpD)#EfvCH8X zJ`uyzy7SDjemiuw<618slKkzNKqLfa2n!~@1*bm+(w)%w!*Q)P|2(#-(mL}HRv4Mg zQm8<>^G3{Aw#Z$6Xm2=s|066T!!JM%k?jWis-FoDxz7xDSlmL2rBBR`P|pqRTQo>8 zL?C~^Kw^%_`UjEioZ0#v1)6#A$I|JdN)OaT__=giTkbGnlfr;+LlYC8?ae5GTDFhc zdIc)R2o+ZybDfS7&D}Drw#-E>P%E+8Y4hqD`sI6)1gJ?#q4+3$>{87bS;qMtfBFBJ z>;4i@z9z!ze@nySP$v=-d%_-N(;>EmFErFAzEQPm{Mzwm|lFqUBuc9NI-DcEi1#S=7N~U6xl7j!oQ23A>GoOCz zu0p#A=$Xd8@q5I)xv<){ovZFNrVr)1zbKQgP9@^=CvwF8IWZ zNc?lp$>(V1gmqWooCCW!CtVxP=Ce86&vh}M{{0;zP9QWnasl7{W*~V=bYa*TaUQb? zo31v}b-tP!wp&WVNC_^Rxk&M7s4NtWosm9ztiOQqHqWNR^Z9yT#Kj8fZe6_*wqfro2X#-n{{aPZ-%v-r`uHAzt5cdI zc=SZ1D4J4B_7E{?n+3yKJT|Kl^({bi|l+Q!jcn7xl}x1MqMkULV?ct=_mz zelqcVi2J`-$wF?gN9x({!1C?NARW47f7xM!DYuxa+LGXSku;(Q((ad}-*XG=87a#* z_qLd-MV`|x3T44Il;|yPMop}pTE(n_UmtLWFy}q^h4?@l)1AXwfNl#25WC-`;+|m( znBiDcJEZwd5~TSWx1Ez7uAzS@*kHymO4-ZA(Uz@rRVjc2I3hMEt zfbZ1wmLFA-VzxpnW7{5f=A%wtsm^!hv@faA{FKODZwoqK>gEtF_xvmZ?~ZxiC^YVQ z|9?JtO31xW@F`AuqX9_s9~GDLIm(Nrc*<(;$M4O6D2;k@?+ZC}ShUd-z&I`^vbp+h znB`!{hwppFhV32vHTJvcPVZUS5}=Ue|B`&%XgifJL=I$2^<$s+pbq@-*kGp%@vem^ z@pBXV)z*$R-k|9#Xs7IF>IM+?NB&!Orq(|SWY7o_up1xdwF99sfv>K!6DwU&)>7Er zx?Gv_CR-FYp_MpWvuz-8kSV~(7BC?fm2HOV$WliWir*Z+#L}PnAGc5jbd$xzv|I|nA8yRK z5ZJiJ?7XFdoubkp&CJ55^plmn;;2l3yP4a5PG{XFQwp%L(|gmbA)GwDDJ1mERH(v^ zXsDeLyvf8MB?A&m{5e*NB^`~dRE-jj(vkxmZ5rKIpqwn10gsato-wTWfN!fW*Rn;b zp{(nR|4 zt+nh1hx~ijq4^wm)4oM5mVI1RPWVUFBE=B!>t|LN4Ldb$A$x8%ATgGU^w8lhurIzd zfy@ndCcapnr4I{ycx^b4^)lrpt(xC-rJ|Kjm#Q7``M<9iq>#j8;Po7+Q-}#ij@`-h z9rf7i_ve83GwHfM>rq`RUn2jp;%NWVJK~oIO#V|!pga~qfbeZxn^tswR-;JJfj+5si4i|3iE<2-3D8F^f<b zL{D5BKg+S}W6N8Ls2gGFnsRB5KZE&f_k@`KT+q4zUc7?#}&R{u6s_{6ZX_c3;&Z_Q?#CkO)G$u%5{DcU%B zvqJE}u-y7%w0^p;8u0Pm8s5)s8qHPErTcZ_&Qwp!C}+5=s5}RJMyi04LzC)eL6rCq z^M9&WkRmcqCEhy+csh5sgzdoGgNVC&2^mV!S$1~zJ`>+dJEWpqj3zX*cE1o`ldqJP ziDC`HxME3);a|7$ep<9`X4nuW5i`a44y(0?Cy|JAQWN{t>@sImEox4X8aMP-#$J(4 zGW*-R5KdkdH0QjC7&^z#2v~aQg@z@~pPy2!NOAbL;_-oAeIY@2`;A->U@cZ!r}Mz` zgSEUx9oCttaX(H&#$%t9a44HSVg9aJUzCxGuxMOL4u$fdYwy<7$i8`sZiP92L8<3b z(IoM`%bJ!`i&9Pmy0J5-9&G6iLQG#2qU#S4tywRc^Y<`wi1o%SK13^UN)g2k+J;4 zZ|&+AVX!!f5RmK+t|DPl~W-1C^UN3iax* z=qP`5R^~UkS*aSw=<_cDB|K{~4ZlyB;7?TM9s+7gnXpFod!U1o1|Cm(Jg{*Wm=?STJhVV&FP z&R^e|g2d|gZ9!rx@z%!rD6ZFK^yjN(`t++b0s(C_0^;wcugdn5j7HKOm)|~P_=_Y2 zy}{>(SvAs1Zz%k=K{2YjZ(vRQ^gf<#17!9UQ$ls`!@jG2to6Ik37<>ukirY|pNeuS zr&RRuf8$rPX-n6NUA3Qr*rKxb!9IWYS0f@CN2OiR$~c*#b3r(8k?Wz?NvjeE@rz8< zNb=taXf_Ne#}9ZDD9|A?@7ry*zfw2T1f!O@^kr{-1ZPjyhCi>B7`t$<88ND4rNH!a ze(Xn?Y|!@Xs`PZhFU7BG(>D29lc>ApLXZW81m%$IQXM;BTNRLdGZfpc))!X$S#@D; zUltUjVE`S7r7ZyTTB!CUS4icu^B=r7MwUZNKQJwTwEQLF&fuJOX#Y~bw7n1BgX5Cv ztF#mGT3Mp07rc=&*UtNxDVA$CxmNN^jdx+Oc`4jIMx>J)#Bb4>= z@&6(|0)PU%U+d3a6Grd`EwIVDXIp*B8tHo#)S*3p#b9vkL!78~E_+|Bt>|3r9<@=w zngkXv-w*Fa9>YNF8FXG9gCqtM#l?j;0d z#97D}K;WRP$zis!I+_8|-*9*qLKR{z%j+WlvGahZjJ%>+y zSf>u!zMdsH?>94Q>?13Q!Hh);he++PhbY%{$+M>!1aP-32oMbB+IZDIwO=8gKL7)* z`AfBY#p^-gym$51z4^IqE9-gdN4&c0@}Y>v_fW|P;s;4rr3^&u!3ZQ$Q4|ix^L{LSE;(JsBjeBRuvZmC7!jovh5X{^DSijU z2D6=qm2LhNjC&-}zL#`0k2@`lIN;mEoo)f~oCy9!4&8g-a9jmYs0WB_K&__ve%BuM ztKaZtCXIt*m!Wb_O}CT-JCw(!$X-H9!FmPPenpQhS|`yT`Coz(xfWEJ>|g*$yue~L zDxcU)K4OlDpw+zW4-sxHs5v;eyem-@FAlu71YX`pyl`fl)G*U~p3e>+K}*z-(Mh>Z zQ6uKvFXF!iYd171%kiKrHOcE2EE09s`*IXm*`%U7z)n{OpsP@5c4i_w@4+oT_ocl) z+F{GQcL}GlC*hx(0|TjD-?0`61y;fjeohOW3+J>Rs+l|Z%4u+HuO9#+tC9y9>Qwa4+X3JV~6|6 zPokd>F=p$TQM*L|Xw9rBDUdl&el_~{;LB*PgRZRG1-jB3`WD@PqE|# zzWFoi-V$+R#?QAm=Pw+|9zF{D9WvJBz+&bsS%vTktsOy4&m#<)=|c5#JH}QUA5_eT z+0IS*VBp3>UySh@UY4??vP5P>k^*$F4 z+OG!t>ZuOL4u;20=a->CB(#OB{0h;AXKN5P|>PLUl5&cbh z)dfMDHw=^Z5h4V@mYRlqIqp4n$4Qm7rb=gAs%*r%ImW5)k}A*=JYxq|q+|8AYSLHN z!fmm0+zz7{OMNzgk`o~(CpwynUI>w~OlkS9!U+0!2=O~F+Q%45^xl#UhX(APlMV}`a{w|Ah zSpoMHee2Ew5@EWE1d&xmv!Pj`4{mcXzjUj`^COp03-LT#ybpkNS3BY71MTpIqd+Kh;X5VWdJMqPE!u@-gG1X z{{HjAXQwQR-Pxjm`ofy-A47qxaIb^(Ks=SIPl(B@hf~+zCXcReee3s^D&^OcvG|Mp zJCG2wTPgmOzm$`x5OVP@FEQJ_r1-zT5_Hu8-pq1!|Uvrpmz z)slQ`wlgvV@oZm+I>}tzyYW{vgT(%baHT+=vur;7dhH?;}=^>aPu4U_w3*Z3rZNq&=M z31MVj{!ukp5ho!JF^Jw@vDIC4$ezh#?i6tv@c*Q+Q>pH#h5p83%wvWtc?^sES;>+= z|NLo9ku99OuhQuCj5zk-BmDy~z|=P%kNBGdf{Kx%<3M`Z2C0gDJ>&8kZ4;&3&BaWC zg>DJlbIB1MT7o4{l=+1<{yjG1EF9f*x9x+ zEwZs*GBGcAUUr$zAJzr!*i#+4b#01=>-*kO^uJASsl0U`lv>98V})rXfkR+x_!C+` z0;NCjea32@uAMO?c`tm82A=I6B)jARGzJ5{X1<*EEZ(kNUjt$x`zgEBsKxCImP`6{ zllLW-Ae$ke#p`JOm!wp_$))%pr}~!$%VmnU7d)X8VR1x`XbI;R5Z~+%Ie%$ES@r<; z4^1Yk=)IEw_}AuO`XB3e#2efb(WPUH~2*g$9{9=RnkFxE4y2m7!e&VgbiHy_V7 z6$QZN?a(8-ugkVVEz(Y0Rz-M0RgeqyhTPP^GV387HT;k{!s2K1LHcXBQ-pYmH&yRz zsL$c;EjoQ;$rd{40A6b4KjB-`O7R=VKX1YW0+5GO{4FPf zgp+9Wrh$^~_Si=CW<^#6ZA3D^^n49y$z$py9KL!e%28V6DF=}JsY}q zL5sSP_FT%5ACN|HR^d-~{6;BbR)D(a|G?g$3yL5ZxmZ@xdDa;*T^;UFFPn0WZE!Y` zZuE9g$3mRl1L`@M;Gt^qnfwD@7qyR+&P%FQgyh2;x72!Z?CqRe2Ta4y06|fF5 z=+{@snF46c5yaZ7$*skt!o%gKyfG)rL_%D_p&gp{I3AZStia%Wi)wV9Lw=hxTy@Lb zlaP&|Dm^17QMVa=K=c;pht$|eU3#G7V-9~3hGivM>TeqLdw`z9wEW1;xi5UR-(_AS zrx#x=r{fYo@hWHaaOXUCd&wj0isGD5%<^|j(V7YHz|f~54y*T-n zfNBSF_vgj{!RMIQzpgG%^A_yzRH5``a$S+p$@_8a2lnQ(ic*Et!_va$Sd2kCoQR`uXZI1N0L-86P2}qKuXJQ$OI4IrH>i>w zcj3DZ%Y`VW@mq;AEDzEmD*-A=HDik}c%_%=p=v}&6R_68b5AGouVo$l7d|+X?`|+F z;JwSW;<=oNiccagOP`5@@&DlBu4G`_;%RQ5D>82BoX80`yUFb2^q6)tY- zhuqf%Vr7LDK4I2dPUjp}LYoezkYc=2UE^YbYsB3zA9p^6WT-{s-0p0mV{6e`cX!;AP7Kb9Sr(ZA8g_c^S+_P8og#oCu@WWAWkfxA)dh&0uZbpHG`dD>WY@ zs{-y!U{tV^Ibt^ zBkVbQLBSy+sk#F)RX5($Xo{cfmA%JyUh$YuR$vWc?G{2%jQL6&;}tL-*0WypaS5xa z)jxoAeii>#ug`Tb6sLe1?zi^KR z3~x+EucSj1m5|!#5VP^klrJppC<^!ihskN^NgNh&hP|Q`>Tu!|{@D ze;-ypIawvtpin^+Q71T`)0A!Iu;m(K6&H%fCJp`8A&P>Br_x*iG&$UiI>p{PWEXcX zTnnq81Tc%TzR-mQfV~jEIE3y1HE2w7);A>PNhDyT-e@l}U^im}KU84=nAeJ%U@tpF z$8-MVtGL^1hQje-*-nlz42B8jHkrYx{ZMh(Co)GUji#7Bf}pSC?)rErvt#zzdRiVG zR}Q`qW>~<-@|Wgkfuagh9c@(CP}R3WTz>F?{5FT$_C%mt2#|j1K&B6yPMg}m|0Rqc z>~b%ar?Ds!M9{w1+8eV?wiO^ujg`2va|=x)_O552YVnGwJ6FH?5tWwh&~hjp`yEoi zyeu5*;te#lZHA`6zUfOHUG5jJpJ$6cW+ETn)3y2Nn;7}mi&OwESrrNMX23TA)!B2^ z2R0r&x^eu-b{u^u)M%5}O0Ws85NX2GVM^Frr92Do1~O;k z$aDcGLel|3rZ};iKlp-+I_>?`I~7Je>l%q>F=WCbl>#aXS|Ujv`P>DF-5V7PsExFW zI7et1-VePW?_$7TX>+3`tM2=Vhxqd|7djc$i{yb9!K(*8tRlfpHCQM$n>m1x$MQ2N z@T2(sl%+h#Mfz1zsqG7KVQy9^&MPv7-(q&q4!}dz3Oc5cVNCC|_2W&}lXzxMU8{^M zElP!-mbgz$=6L5`&agzc5FRaWLFpF7EIVHh62AZu2@S_~PI>y0i(T6EPp$i0)+z6X zH&&1h*B_6Q=kW$>#Qv#PT>*T}84T42{IaXOY?D|wHzLPa&8cf5Ik;IB?`GMfGqo`< zqF{}|aQztZYW1sjOGjO3G~!1k-(qVE6{W*0gUcGR8ZK_+)tXW=1$9nO64xN1lT&9F zvW@bqS+;zc1Q^=#G#qw!;p0Lqk%grwq7o{MYpQ2QBi*GZpWEV}rH>Jx0;FFS6$vGi z+kx7jInK6j;BgLtgdsXjuMqzF-LBO|4jTNB8Z9EuM$HGX<6W+$(B~0#P+Y&}7N#&n z)}Y8t)xdE=ccE#cLq#9|UJXMgGZfqFcwx%yc)x;4!aiEblNS@}c@PeOnjtVsrqr4| zQN#!o@yxu(-&UO24fwaH9HV!ZX@E8TQ;q~}5?ovm*W0-N)H7mp?sa2`p55@RElDy* zP~=Gb`t?20bSdKP#b^1Q)p*u(cZ0pTl-bUGd#Dkc3qn=x`RP64rS%_7;hpJ3lh!}DnAHJ4=u zCC=L6td2M!;`rhLI{x%0&}^nz1)oSBJ_QmooU?BW7C*#OT5b8>-aQx`oc>7jT$X-q z&&mu|-nZU6*J~1mBdIBStd!#I0w;?*G{+{?X{8&Di|D@#X!{f-8zSP`fR0B?YQIf{EiyAvE)ZP@hT=07jChp+NS0 z&9Ye-A))c@R$PP%-xw1(SWvpgq@4$cS#60=>_kdiFsv=FOl{p?zuBW%Tr6{RJT&Vn zg~_y*_a@Xtb41eHeV8Qf^_cN0KMA<^Qhv(u&7Rk6LLHhY{Ptx`e^G(0sL$(nIWnMD zh3!2nVBRRbEZO%!S1xWvK`z_dRf~!D(V)=NaC|vMB_kMOfbj%;5V^@l zBcVeXQ;kS<4iN^(a5C$CqL?JveAKU#&+HYAT0dXaU!mpMlaG#@8dZy>G^&w_s-ttl ze}y)#XTTg4%o=V}7P1YRs3wi;$MtdIRTc(G=)1OgS@Kd!h||6|9v^-IW=M?TEu;H$ z8(027qt@eb%)6Q3yGsdzOO(mJd5VfHv7-;l^6_rM1Yy3TI9}j=x{7z<7_OLtMzT!Oc zRdY*nd$dOl#qwQw-*f$x#>!W(zFYmY3wpA$+Gde=oA#-q8vZ$cGrC|( zdArb@5U*|go=uC~+=i!H?-XP9bKU)<4|~fmt9idT;sxvyR}a5j@0SydWIxc@yJ{E- zC5~`8iwDSE&XVmQvyZGp>xlG%+px#P?N$nh(A!Js-|E;122wVZOxj`y!XQ$|`!(z! zh}WLxJeITqU)xzL|ITDmC^&@mtvT&ovdr$goDh;IOMFLdSJ(rV3B9FOp{P?YC;W@7 zL4%pvc|sKjE0?MY(mHT7u8#C((WEzTkcM~o8&R(#6{T$Nsp4+61R;$-P#OjRolz>m zIbeY=!R;#g#-fjkn+?f+m64&^+KhR6b69L87QRT9pN@|prw}$~oyO?NNLB7{xAT6`3nK1g&`t&bh4kA_TM7D zPNX|U4Rmj11Ca?_Z-B(_cmaMU0t{UTb+Z_q@UWca*F1_S5v(cvz@OEhSY7`$D)DG- zC&LWFpG2_1swTnlt)zOAgb`NG^11(HUuJFfV2%4nfSr=$hhf@=*^5xlNiTm$lU8#D z7G}5eB&=+pxpep`3H&>5VyN`PmK46PE4z^A&lPzzJFQsbWcDj(N_$S%(|lSW$zFH1+xuPR&DKxs113IT z_-|7z+K0HipL|5Dic*0~yXicGvHzjP%cLvdbO!Maty}m=d|79tS&*ey9V7KD%W(%z zHnyoqz@@ITs_lWt|CSR7EC-XunFLr)7{uUC(HLTiquI#yydAajSH-Dor1d7^oeYR) zP?pj1Q0$ zFqxb=UQt!^I6C>Nl;MUl%MgP*Y~-7Zb=LX$8`t~cF#wZZ^{hTb8d?H^6ov(koOY3FmJ;F~M!Hl&;$yeZe^%_*T z&nzrf>$B!Vrxm*9rbeNwllFA|QO!X=UL4oh&89u{xGrab7xW&xm~%sYN+U8t&_k!V z@i2&>lz&E+@c{~tSl;(!fV^+N7t~TDTg&-KiNNi{b=Z*J@b~l2w+a?6oZlYuWk2C^ zX7Ok#U-yt2RkL~eIwX%>F*g6Y&O5tjuAuv!$D~EMl2iJgAexZ&14imantY3~DJYxv z_V8QbM`*jWjzQtP{zG3MbFZ!XN+Uy(0Us&KO7k1uO9p?Z&&@8)Sun{qpeMqu{GP$A zBNUkmZ>2~}n}d}bXQxT*e1rTlJmJrO68Zh8rBC2+VpK{5_SIL117)~B5}nb}Z4C9W5)ZD+M)ihZ8mNid{+_H*+AWae3IGv3sZ!m9FATHZFb@SLgZf z&0&x1Ymh6`g-d`+7@SZQ)i?x;o3pS;=2sNP_9k;O_)FBN>(byi6mbJDg;KZT6yz3# z8IP9$H6kWMw1Lcv>N#9{%0?T^mJsBV#GL!EW#4gw+9>dr349L84kZb)l(~-qxq;nd4RFS_9e!~UaqLJnDNN;S82Nt zy~9%Bo82DHpA34r>ueco^zSIh3++&Tj(H+{(b#`|9{m3Z!>sg2Y))|psRK_9X9!}J z*uuSM^U8xOWHZ_|=Xx`_E?Y|F-;d=p&rw_ow2P#HHXdSSdjNPglxo)LH%J+Tyfv6 zXW>XqV`oeTX8-wfUiiz;7;KAb_cgQ+?OD#T_*DXL*+@95b@s%jGD)31JB#RBm=?#( zvtSS5dIN`siIu{lMTv$Z1fEpQ@yp4MGZW#0;1;IX-|`N34$z$694267K*_`S0(zYh zv~loLNbaY9iEEzIv()$afmPur^nj`fP{^(RaKQ-cK83ga=l2wbRMrj*yXJcL;Y96* zbtp+V-rp-GhXtLM;>DHvp@EETJ_GS(pZ9@T%cMv<9Lq~W&;>;a7@(uZe;lq2I6UtO zj6x8Q+Kxt5=(gO_&PHNpH>)SnGoMjCk7`%LjkcbuT@z7rm^A>#fF|a)E6cEh`G@u$ zUg#|?q6=*?Pyt_ZnuwTEe+8wigkM;apMXyYEi%|^L5sV^Z`>hruvrM z`8;qd42MJlb4!t)h>Y5ZlYC|U$Hgvz)1nUgEDf)Q^mAG-tA2=llTKF`6kOTjOoc<1 zeyeygaR7+2{CLu<3_^kUk~x>9-=8f;vlZoCsfv?$gwZTacbroY59OE)E5(ZQbxe}a zp+2;mZHuwQhdAM+X4JG^?|UL%9%&6@)DA%EIa?9Oug2@Fn*BD$>zV)h8fFxk!Aj)2 z+P{G(ziD_KT!x+7o>9?%c~R!}VMac82K?p`-R)6uAGHYG@%G$Mt9N~w&fB^iF-*4( zD7V9kQ)8%Q>!hcT+I`o1k^h_TgwW$E+9S4S>9szO3MtY%w<&jjjBFTg?0)M znPVAdYb|U!?e+uCjnWO*9Tb3}20mDpr}};3cmz2KTQ{ieLcuU10ZM6~@a%Pg&A$z2 zhOzKZvozG(2Rc@-a~MpfbnrSm}fBhK>yi8FSy*>#*j zohK;Pj_}2deRhpMJ_JUpXY`BDMUId=xt+3!FSg8UiKhpYA;&${|BYT;aG2`q_erMQ zwXw9re8Cot*Dacp=e#Bkp9$ms{_~q(~E~W9fsu3F@6~HIhAG1fO1t z3}*EX<+ZkeZ-20Ryma_|%8WbqPJs4M29cr+h=UP7M67Jm8A~RgisfIhPY$}Wu+J!5mp~py zvQcQdpLV2To4(=Y^s!cV6iRKbz%jO&bSx9w9g)t*&rFh2qv%) zeaWmT1{7(?7Y#>KuckPN+;PX?b&yIp93a z&!MWZ;3E%$tm7-RJApjf^&CwhDxDP*+9G(wK9hB2Y#P~bkq>x_91~70%%x!%c>?m8 z>T8VFN!_B#@DO>BhJ6@PW&#%%8koMETzJvU3%Q43P(Pon^n6Uu@!Pd}MBSE60mN1E z!C%YB248gPtEG#OKtkUKZh4)>5j0H7jD{PRgfsgupLNC6n}?KPfm=E8fK#NY3d=u4 zDIWw>F@w5L(BM>$#USr20W0%lrfAkYm{`?TSIGWdYBT0vX;vZ(Ft!dx zR8yRUFk!p2A@woKby%dC@FQXolk9g}71GYm@b5OO;~M!GfDHI;tJbi3GUM?^m?vN* zL1zb+zmCm<0V|1N@KZ^H?4|BZUIt(-cr?7~RM;{|>q8q(^>AWfa>PB}8>;sDEHX;( zw2=QPb4h9Vfu_}>tLy5M2b$e^2EQ4mHvV#gNl!c91vCKBuC|o&Dy%5VLYB6z9RzMRFNgI-pRaB&N z0HHNCC?NbuaqXv8tQCdARxo0u&54((w|8jpXi2ONM@|Zq1jt9S4|n#~&7N9RZyrt* zJMvuDy1|Ma#XZpK!;oR{O*XKtekGj?(5>BQxdnFoz>3!;ZbB~%)mHnLJ&&d@MY7cc zJg4hxq8bTT`;k2mZ%v@f95Z=IGg=?2p$>%mqCmI%tLa1Fq+$&DRD@^M9pD6Iuz_b6v|Q zmv~^7t6lHb(JB4D+hc7*wUv*{z8sU6nncMW0l~!ijjEVxPeCXccDkm6NqebVA2nX@ zdY3)F)Gao)a(bSc|NiNdmDn;Bn@n&(cd)J3(pWeT_ z(Yq#}`x5M47B%=T$+uWHqJYzfVcEM3a$H>)CXz4|<;|HkZoo{>qqKG)RKPTZWkHKf zGcMo@K7)7IbqNyW1f)Y=)KZ-J!>NxybwKK~(C#V6`s~wCKS5nxGhtBI0o5TUFB`Kf z4^#z2_gZj&I8$_uS-sWV)fT`(XGv_wy2L55GWpZOM4m|>q8r)+{&odMJK4R?sx?9V z*KjYcjG-ppWZZ0;-LQmO3OQe(zx!Uo7GmHkDK&Y{Gu-W4m0NmV_-$~RR3e0u-l!*b7ibQWDH-!|7BoPF<^duGj=nRQyjtLL{v$6VXpMCO!Z8e&Dl#r9~4Is3d)DS01NQu6)*>1lFCgd7&2Bc%$C+zcl(b z$xi@G+DDUXM2BmD%H-h2`x5$@Au5~52JWt8id5A(R7}?#ddY^WUu1hTcwB6W-SXp4 zl5=|&>@N+>X|G7y)ZyAZ(VT!8^VT-x)HNR_hwy@oH?OEFG zS6%BUOqBd@Sy~*`>|s*rac~;&PDo`sgF+Ys|(46;9gb6C2S*Ja&o( zqF?ly2HM|6roPQgMw7?anzR~>bnLcZQKpU_DG>O4u&doa-8;0u4H?QRzshQ2*HFKR zXmo&oR6%_(!lsK5>_S*RR4q0f=+tZ%Sn) z#isMc53y8KcpmH0A9p7!25sUIeuv%Eu$vzwa7KfFho6UqtMlI3jLBrsDjY! zl)7Auq_MKRfa0ZKSFMEzTj$#9LviGKRsRorZc zXaGAzgbJF5|HIZ1)Ifp{waUh&!^K9WC5U=w#=38Pt2>E(DBPm6X=6nZ_S4qjm;To5 zab`rmzQEh<2Bd=4#S^E>2cX-9x$Nr{QdFN(?ujbT#tQuV_k}r6C^wGT`j(QVdX69B z&i_++@wddENFD8tcNwPtR%ny~iBd4Mz&a_q(tJ6+QJI9K*QZG?f1`ELUu)e_iLB2R zs3re4{U4;zoYJ8(UG3iUG_+5TXylL${&y9C;ZmTi2o|c8M~$U@`z}`O@C8-KA3e5< z;R&^>3jW$+Uc(tr^BD(*Zw93q7|YFtc^Sb|b=83jR~_W}l5Opg?q2Md2`2x0OjZCW zrOBkuy$1N+ft=;3fqdFZ)*ANr@A^AXVLx@986i1oM zgSMlCh33E`>NW}LZXpA8`A4r)``QSTkoB8Vv+uRN}>4#tEW|0qi; z@A-%OwxNVw$cJ_*0+vL<*aJ@~L*$;k<5~N{P z|0nY+urvWc2AzkA&hXBQ8amu>s7_=d*hURqGC@(EWcXz);W4b$wuM;dhyKg-;0fZnD@Z9GysG$06DTq zDMdxAJBI#VHOkk=!jIu~bErD;6u;M&3M zvyXoPD4U&#HvPo#!uaRHbc0=qZ6clvUR=WHc2BRdxeyOd4w{nvrz2@iA*>LSeXe&K*h(Wx2WmCsE3$ZaX;ld3u~|nME;o?I-b_fn(GSS=888Q1W zu`7|J%{!Y;zA=rGLVQ1Y}D3XjBI;Y02fcg!|19sOvBrC1dM+0UcB7JwajRAZc-)Bs(w2!ow8$L`g`H5 z?-bdCWEE4(xt$h%eCh1#KSBPZLB`&mtYWfU=mLTt9a67E<5gMUAGzCo^$YMngzd|l zrSUL^yF;gQ`AD!s{w=keKeQ*VVJd=v$$ns_vlJGNUk5M|Cd%5GVPl{8#~HHLYo6@` zhnG$V3i^76=9F*~DFTm#VXQT@?JotI3L>*q7ChhDm0#-?5q|F-AotpS8~)Zh;MGypLSqsU4$5oHlFgVpeU|gQ)P~-Yhg)$ zh^3MHyYbm+p?Pvd77hKw&eQ(x?Ozp{(y7$rgX8*XjM6_>^o|5kAQqq*_a@Y&hThlFXD_Mes?+N<~#8LLVdkMgo% zzwnz(+(L?T2aEqS5AH+|5`DLtg??oak}aOQ>WwnRKf7%4n_M-Vp*&c6E?o4#ISx|U z&XMigzQ|+?27fs`zs6nGka0O|P-a)~&1;?TN4CHg_aW4CYbZ9oO(;Qj$5u8f>PH(l zU0f!at1u3_uQaL)W*hQ5+DWD4$&co&23G|lB8SleyriAh)jU!7(QHMMunccqwg z(ET;31Jx>IZNvS)&@@>Ehd!*7CQpGp!>yxR z0+~*xTx66s@S_hCp#I~eE8pu^#Ga7;rCmG+DvLI_WZA92zl-<4QPuY}{ado+i4~VG zzYHyy11Iu~mbBLmUqi<}Q^d*UR>zw-&QOgFEfu<)?^yLW?qt2H+_K#{$&>%Y6^pwR zJnSB(^LIzyzQPnhS#F1}YJ?S&+s6P*QL8CxUL7ZgkGKJ4i5J|>=JRa<--Tnxe`uCT z%5Sa2tkaSE9|suc$6TTCtL)O9q^Wnk(AU>t83F+Y2*O7E``5?3E#ER$W)2McOK85p z(vHJcHDJ+io0v2zVXdBt?qnk_$Y-=-m|Dj~H{1A~!bMjCHe>YGpDse11y5mZ!OvlDO!^}qtKvO8AWbHifx^S#9iv0~ z&>#!rxp9$!n`?tD*$j5wDnH@(+K&fkxs_9KWE?zGIuIH@=!pBfO*x)JAFLbJrH`nY znq>}aA{USUcSekl*(lMG{$}g`fJc2}h*4B#|M1J`+Uz;Dzv#y~5BFKSB#P3?DWc=0 z^#&wnIZo8Aw^~}?lxz-<7RxP&2=n6E2NGSUtGh}8jDl6pn}&2vcjl|@vnG23)~0RU zhUP)iVTEyJz?0+vMF#bw|F|e#0{8ubOg>h*nT3M4Q=h$-b=f*ng&-v)NVZxkH9|lPR%8g1l4)l3X2hdDr~@^JpwyBcg9J?5hR2CvFAI^`WC z7x;)ZpgVWZS%vu{3Jrg%mU{u{3;m?s{4P|T@wm7;{ZzM1(EQ8N(x6gkhOrN{YLsjn zs9FJPjnM02ClEhYoEo*V?R+RGY7-`M-~Twn54}Fn&%9h&D>K64N!T#1z^ddE8`k3? zE4nv_HU&$ab=pS4aGqD#o*wJYy6n0pzv@K;q@z8RYwGz?a1{9M?aAp+|JIo9+<)>? zek2R%@=fqPAhL%7S(W~@kIdoHymp~-`{K^4vvY*;vPenk$)<*a)kuRh_BJhvvNHxl z)aH5vfxNH0Ay1B#bIncgg|qW?tU=FG+Qcj6wRG(!lj!EN(ZcuG;h0uq3DW1x72%H0 zdzO|sT_F8(N?7QC>;3<_gJXDpX+T{HU6U)E0!5ayjQjl7T&FksfGXe7z!T>eZI*LP z>-F{7Qj1z-^^UTszCh^xHHnmb7-wdOha05kr`Cl| zoRaK{QJAPZj`bvUQ26)A0z{lqaL&?1? zF{qTscxo>bNKk7R++`F}kSGVWq%^cG`IL~&t#Y_jK>#gz0rRk?Hz zN#kvXUkdnWihj!mKlB|+(=v!Te$e}|{KAg4>bxt=gS@tIakB~3gmH^``wRa#vin(< zEUGB)F0dh9A>Eal5%fg8{L;jFALpCY_pWrEuK_He97$tbKG9?9}8$Kb@`hh<~mU2jdee{?N>=J}NJ|70xzkKL*Ca`*V;j9-+}>Hir0 zo`Hb@LH-P`|4zFe`My7A0@PkwdU#02Z~qaepqY1+!QfFHYCwsR%3g$;ve+?3QwT?vS&IU%A?En2jV= ze;KgvAE3GsCA}C?B~^O#4356;iDYBCOh&`KN^uwNaDZMPE02ouWyHp6jbzC6m9w9P zV~nl_Kt6PuqHb^QUp0%R$c5TTsmc_gEd54Hdi^ESZ11MC_|N2X{^!vpRsAL*8{c8E zw#Sm$ffh=wSdp9m@c4UR!fB1EMwkOrUHs7y%(H13$tFL)V$gL`>n8Am1rAfu zrKp5w^~go~*yq_Gp_kyurR^&zM{m+*>hBFwc}Z=)eIwORDAcB-FR=9ee%!Y?!hkpM ze`vOakKXb2bbTx*Cr9l2CuGPgV+-Eyz)$f(W=PQS-rlX7ZlgU#@z%VeLR=~ZGQ0&+ zZDQc|ixx!u5-y~MX~QU=N6#XFe)HPj9Pjkk#{LSvh7j4pTAa#(V!bebxN7~Jc8473 zWK?&2Dlqh+#REl1%nDZqWrg*px)r9%g>gO9R)A8D`jN#sAZTg%4n=Fz+gXixU83()q%hmgX<7SvF2Tpe3RA2CoY9DKD$;)MxxZ4#--G{}7uPf@ z2Wud&$e6r;oZtT|O%v!I1tIXY_P{}it~j9)@Y!dr1IS9f&79N)L<3%!c3&oYLV4QZ z<~WFcH@SGD?B7ea5u@40u&+nl%f}vr8mrms6%^e}83l(R4~D-R$$Q zx)`uulwY~CeCFzS;JXAur_w^t`)F<1xwiAOy#k93Gt1%*rGamf0Tpe?q<+>YZw>Ix77%zKgt*;E>ewVK(@21ncMBoZ?nFuzAyc zd#S4X{w$++HW=+IZ#1%L$WH+jR;<={b%<*7-)lQ}1(NK$lZi||E%XPzd!penLs0Ew* zyXHd{6wpc7Hxm0dTZLE(1uMEwC58E{30r=;mZPv)EGk(WQ1FB*E5>uh!7VihzP zO`$*X%MN%OBQ$J^&kiIo6Cw)xyF2>Ub~9X3&b9kHgx7nEv>mM9DVAei_`1IXD8fV3 z?VK|LT8xB>3*$h`m%wf_(2}ADDvSBz9HTFEex8@QKr(z(cGalPB9?F`_3i|RqvLi1 zRCYaY4uSLuZf#5G8VGZ;XC}uIt|T4l6C{Ug(wlD9**tZ>FiH45$wF^G<;~ z%tix5Yu|9AQ-J13=q#=5Xu+u813xW5P%=@@Bt-+946>oM73#oezx?wBvs7(#tubbG zeEY^$-xeB|?hQEe!fP@!Mx@lXc?%Y(hhc+omP!mazu34UV#vn1C^mIg^6~7K5f-st zBwo5~^7?$4LI{@ISvLH9U`K26QdodjN4F(L7N>8&$j829>74MQxo*48Sp|49?1%0B zEih(zm*C!c|*@!PRCPQcPwXoZAQak}H%5u&t zdGo&&@uG)?#>LySJq)~ej(^4bZ*OlQQpHFUEHZ|J5}g-6V942pg*)Ojeh12mg8|&* zqyCjbB8g_I0DCcHOVHyL$@0YJVo&zm=vh%~MRuQXU=rSpz)XVO_o@XE9!a(_^CH*sH-|4dGeeAM6Br&VJ`4 zR!qsY)0)`2lIc&3q;=SVXND>cjS+G-zudlL4;=1Dn&MW~#@vMcWUa+!OtQUBKj#<8 z^mWznj_?1&ydX%B^tEtA4_AmgiFohYe@R)T);IUOGQM+e-QOJ7h~i&F21?PuaNw0W zjuIExaiN&Du4Rnxf`e>t=AJZN+Ej6^qBlbQAN2=AakaGVdRAKRc;XH|XYGlhn;pjw*!un56VA;9tKDQak*;frJ_Sh@ka7Th)? zs#;PCH#}afKh&+7m7VKD+ZIjo1NpGBr}BdJmf?~&0i<_PQMusMcu2MzJ%j1ZkfcC6 z8?XdwBG4X$8+_oRSR3;(J0Z6mdGt!zaDVISYfnBcr;kzbFoy0iTzX{waaF+Q4OwmK_=5Ikrcc;ZYE zTCUuusO~FLJfnjg5Hb%Y4m@GNOz8x^8Nl{86FX*%A0A*UGEVH5xrt~7zIWT@p*bL+ zpQc-q_;?8Rh5X_{aU%qHie&_;Th@`kE`o03gd3X#fvW_)6^dGmchzZNuLTqdmj2d& zQ@1Zkf48kNW&oeQy6ez?@$J_~^#hsrxSCm`=$d~FLSaMZYd9 za((3{C$j2sqc42qWb^L2;{<-S{8{rU{ir~P>%5YzIkW-4SjWBm|Ir=?tWDL z=&-APb@%Pmi5^6C7UEqpMpiTheLS6dB^ON9B;qoX)K%y4oX8)&=kWvA`arjKJzSbs zZ`3s(aU63SUM= zxEo`{c`$yKOz+0Rj2(qbV3+&rXNFmUl1PV~38Y1O z-cvI5AkFXz`@fiTFqsX3(AIH&h7(cAcLLK)cz$ChCB`66R>lqkB1h3opuYO($bs)D$-9fw6j{-hc`Pek+9!G^5OPXN zUu;bz_hm_fCsP^@L;T=MXdXCO-p6H!!@TfsDj4ILC^#uqDqRzk8$~T6!3I#od4<1Y zMWWDPN${5q_xNsi4>0<7yzE}lSB*)OytfmPRMH>MK_R7^-s7%w3ae0X_ATg{ymh`W zt)a(u;*CJm1zQ9>)td2H*=i@Jq0C(iMBR(^rZU5i$_;1En_tXe&hw^Tp^rPpPXO&> z{VXuyk}~qNah6Kbs&!6v16Xl;@URCb^F)O`DbLhah(4uksa|qfM)K(vH*OXSBq<$T z40fSA+`^NdE%$_j;nzz5kBKzQo<`Q`6i_~cW872aNEH@-TI;b&b9uu;L_jvwZa((V zH2?WQTq+u%Z=C2rx=}(aCw1_j;}!r{X&8 z*YNC2<9qyK13DIGGuViP)A@cal~flzJSW5+w%d_LDeCBIlGZN%3rZKavBJ&CdB%%n zhu5cfhLJOnw_I}rqKQHnIxN=hyZ53y_xIsFMB#pa-INW}Rih*)2-Dr?XyS zBtzo;P&2Q~xK>+tbZfsJ??p`;5hkDkJ`H-JMUlw8*)=u4d)j?{`$gw4vTa|7?j_bM zwiYgqf7I4GfaXP|U3RyOL8!If4yvY+vL{D^mAA9VLkHbD=RQ8BHvZQOtCeH(ug>{Z z_S}F-^o3OirX1m*kk~Eo-S#FcWEjr7)aZcpNbGmMVIY|B5=`o}!#M;dH>6Yiif8YU zS?&D(@pJ;it+a=GE}kb|(W?tC*Kr!g^j$Q8M91tpuT8Mt^M#;^b_S1Uccap21MY(Q zL5~md4t96*#ROR;hP5+YQ)U_yV~Qd<5a)XRv)#OKHxu~jXk}&rBQM^Ye^XR;Q`U6* z>_&md{U?#cO&BkQM7hmDIzr-Lv!0{e4fKr}!tncb`O0#AWs#6Yf!;b1IVviOzn{3c zkr^6lwINAX(iw%%WzHdU#d$#elLHwYh*osl{7Yy2Ld`xRXW^5hl~*gtBOiU6W^*zsVuy&S zuaH01^5#J@3x}kbk_RB1PoP(l$khOJoZ#-srQ)-x8hHw_HSWFq%(V~i5917*-a-&3 zw+YZR6Sb2tHMNtY+qNl>ziD4K-Zoc}R5jXV?lLOaXr!)Arn&GRF}FaPxSgaj_$}rd z>=vIr0oz_qK6~=a3_*%XP$^@MiWbZXs(kT@48wQDKcF=5^P9|w z<$|iGpf~e^vx+uHLKce+CTVZfS*dYxEjfW};!yomTQB`ATI6)bEZJM3+-nW@$mTQI zuyh6J5Jd=;BOIq0>~eJEA~pm^=W5h|ig;e`&EDPJQH4w+-+sFHB;={*y{LT1rdy|{ zr&^^m%wa2g+fHL zmm{nsV62SV)0dSq4%x_<;niUF>!X(2xW`SRJJD!@HeoGGL{e9D&6kD#Of~L4dor{G zn~KQgVI1j`;EW)`4+(UaSrlg_V=f<8(FkyhsQd#FjhAPxGGB*3&QR`qJ4nD?;O5ml zhVgoNau>*xIv3gIr{omv{n2Z95IAAnlyoV#u<8P@nF}T81%1yme+Ax z^D$4a9|YZ(mCYWhFDtyhtrULMtb4Py+#vds=)K+L0)fB{e<8l+v%n6h;D^UH-cEw9 z^aJ0_^N(sNioJhXk3-*GSPxYu6_`%KLL5FU2hQ$9GoDmiBs#cU*vkh==Kj0A|BU+R z!KjaV%;`|>e)Lg#oCefe5ij7i`IXPfnQ3qN-s9)aKDnT_SOVRQg-}5`o-2`op5#!y z-$u}u@LzYp_ z0LJ~*iW{muUf^nw6>ibMe`)3_J`q z?&D?8oFm|bo#r&Sp>XqDu;i*qwCF8Gn8Hah_N0x?p^d%1qpPV{pL$zYLJ_Y9D%e_Uox3It;I+E+lqtC z`iPman259v9u30jpV&luL;ho zu{kHD#pRLuyJHzpZLT(R>=fUqcVZ)F-$1p&P5OjS%3{AXyBVzo>BIZ54yE_+?P6Oq zu`3Z>$7AZIwffiKuTQNO-}n1g^+5O;vqX9s>)ZrleXS z;9uO)MrEV?dgwsP`=4V~aRF{s88QCrHYx*zfRb>msE?*!{jky2HH^$Mko&B?4+yyO zXQVQHKn%|3;lK+i)^07bhL%&WhDq-=zko=7-<5b?hzo-7p(bw2PW>Q7`s*u(KfLR_ z9+GBYvQo2WbN1%FA@kG6hYpVB1vSVX0gl0BY2-(>}1T>7*CXiYOiv?!1J>!>wd zvg|^TP+9Q=@{v~9$n!};qSl$e2PxNHKmm~b6QZ6OJ zqxi@qOVZ3xsGWaN`p$svhukY|H{})Ubmb5>_qa*|B8HvI2>Obw(c^nB z9c4vuDH)5pC=i+-4j@SBFMgz37RI5$>`*9IrlEvw-Rl$3THAVsi!!#-*wADAiz4^O(^qa}0P8NLGEDyldQ_VdyKvbb3e7ikAA;=q+wgLTs~v*(mumVG%{e}gH-u1MCk+o) z#?Bqi##51Pwx?&DfJmSRo>LOX2CWxJv_QmM(~I00!bj>}>+tS*P(b;03Sn+tWb(8Z zWPWp`C3P zMZF^`16hL8D8*FM7WpGY&RZZ0XQzw^wen5tir5KA$Oz~Wv^{3blUTD4>qvS>=71lz z*FG~{nfTieB9<#G`1xi?)=azd|nJS?6YNe_|J- z_#rCfw%s#-Sjt=Yb1MkuyzAKb3Z<$Yhu<#ZW+oiovhDjw(sAwESeg2D*01D6C(p7` zG2dcc6^tt^jIS?HMS_AnjEawz*rAS42|3>ebFhmwnRN{*8mx=G6q5u9-T#F;HXzK+ zNq4zsu(^Dd{AodK#DoT#;U?r}|18mm z?rzZviNOpt3wsPeSTwZ7r~bl|_ueH1eEof11Zsq)jbUU}`qxX!W@1P5RSgx5C{kJV zgseT!{?#IEQ4cOKA^w2VF}{7?7465<@9l`x=4+o`xMpobW>(8m-i}h>fM6U+-**QY zv%E3;=ir~n`)@e5!Es~<*YUVBI9FF!a2Q+Ta?MkjgTzk|Rx!s#rO2o{Km5VxOG z-Nuc!3_!KqLb^)J$@BV#bcW1OVv9>g!eDKR|#0#{Zr+BlsZ}FXwJXi(ZyElYISes!KO{6OlUJXs;31y!T+%A6>yn+;6Hg;`}VRrPOd)Cd)V217YwdgU|783 zO?MX!JO@=OC?R6aG?@%M8hq5lRKlf)ab6V!RR1 zaFg9k`2J$qw_n~JjsoCt*VV&Ze;eZOVS#f$mrvcuij~dBTehbAvqPYIC!O8wq{3VI z_F3srQ$@?3E+K=HTtonSiuL6eD+N2Yc1TZS>E@q z9*KM3|BX_FY|{r;^Rau>3^)-?|6j11_4k|A1!`26n;hu5nUdtsCTCF> zisFzW6#pGsYWjc-xR&S{%RZUqcaV+Y>WYs_!<^3=3xS(??oo$#%MoI0FiuEd;mss0 zQN_~NEAW40SL;K8z)(k?pQ*o1(Q;9|ZnDDP^mB7t5AB2UkQzI)`;|9bgK^i(RebVB z7nQI)9(*g)sw92TNa^|~bB>kfx=dR5^l5SegWmRKR*}s{$ z5|R~M#|@Fl4zi`Y740w^P(Ssh7-kOg^HU0g5b!L&o+h5(G}u2a+6Yo47##kSbAokX;PtNz(G8wdzJz5%+N9+x>?&z)eK^$XXR z4sOkoktYO|uIYPkCV_Dcjj6({u#N9>#0^(*EVcS$tWR zyDWNv(qQKeoLBn>Bj2HKpS!sx4s)weE+3mSj%)bb7m7lDY1@d+CClGy|G~*YVjo4X z`9hELX8hJSo}p2barB<$&7)VGV!Z&Kt1}gMelg3fyY+|bmUfaKT`Iq=n>qN7FClh9 z&G(rz(#*ij@cW)ve|3n&HvuUYm^}lkV2%S$puyoj*_Y{?#wEDLM+NPfh4|AYBOj{$^y_^1?5qJLv(Nv=P9G0`Z28{bEJ zQI&H4{!kwkMR^RgNRPg@H}_|*XhSxzI90ybGi4;B)Sy+gCS~%|&69nQ^NHFr4UOEW zna-mWS}?*E>O`DO+;g|ohY)kKN4AC$zQF!4(DVqs1sv%PaJw8w3IIKDb5QAY?Nen$W7}Ft-R_5$X zW>!v6M4u^6zvIa5bzX_eUEp6`-R+Cr5#!e}*GIGo$l&AspB4c0D7?J958u+q$A>xa z#lP%Cf~rYHV)nWl(t_9YKZqU8x;GUr4hdW`T*dlR0o9wXC9r}cPg|Gz}oNt1TLZ>gJcn(jG|SnSb{u%8QL+Md5(z7(vQ6 z*}CvK6AG&NJG16pJ$`iwalGK(tNiuL?WEZu^LD=54Xb@UmNrHA_6mqwy?h<$Q11DF zRbCkO1BUPyH*Cr5ApT&QH&Wq0(0={YLc@xZ>PFho8Y-*en_8ao*iJq3b;b#R<&(b< z4|pf`{sH)0Fs6O#P9EO+x&_*K|w^3ELP<2Ebmpoj;o>?cn4 z5X7GHF7D;w=xY}DAm_{`@4NKn4sFyA-YC@V&d41$HV+LTrFF7O<`s-N#0Gr0-1A(x zX(Qed&(6rU3&oCz*?ciNMQDPiMj?6?rQyTr~TPGlPx6LxECGG3)7xcCE-eXD8*8 zQas1M{F{M>wNK3Ri$p3YAwzoOw9keak@2%>b^;>f0F(@bk@yg#9cfDI$J=rLHH|~2Nvu2p4;#)XwZNIN5yV zMnZ6m@cBvXYFjIzu>FDSM@jf&)I*u<%&W`8Q5z@kVmQ_6@rW-pBW{(Ep*NYwumsxA z!4`#g@)$K7PtMk*Ex-5kaKD8yKbM9x{m!-SdS}~chKAO1@cMtHd>sx@R5*z1DhgkB z9v8$xGZ&*1T{C1Oe9cbIBAR6uXDAhQt~HH{sbPl|Ru$#^~xQp8gb4amCmY8rNb+Cn`71NVh1;Q zW2TobSTq`1)Ft1bT)c~0e^x3+`j=Ii(}K2JIS1g3 zcH+ryZd}=|zgqub*5hE5MTm3HPF1Fxz&nErePyI;AfVI&y3)|)>`AEEr^WWk02!X>@KKpZz8X;|1r4`}|gC0VoZWBr;6;MxzI@~6)Sn@)F&{gQrr~X1@{Jn09uj_J_ zq$=}Izs?!F&@xc+9YexCH(@AWJh(x(gXeRqmAL|;8%#2+L#I?~euR83&XpzEj_nH5 z>0dqE*+&f&8}Uw2EQwj=qcny`ZoM5r-%jg&hxHk!`t`SA$m>tun|={bxwsMZns?`3 z6Objdo>fH(sZY`Dw=*Nct&%fVo=@jrgOX~G6`l*7*HZu0j34)f>i_WpZ_eRPr#kTk z+VRVJ#rF!&X@YHh zoRwaCntEr9?LX{b`QZWP8`nl4_74rR)Z^x6&DRUA>e)-1GTn#h=glH#r^YjNW?P*o z@yPa%-GHW(+~jys9+%tZ{O!E*-_w)6?J1EroWU+GSUWpKH4S5i)kq+ z)>kiQc$s;SlGNF7Hx|CWRnBxfIhxk_WE=D@HkOP>=eM*b3y&;QcQ9=XcbL!CjxnCk zadrI9mX1(_&gd5FC(qf*@mPcZ!|)T$7-+_8`3>79@1}bX8Cf2QcD&yqENh30{*7i6yQnQ7&DG|3n@!rKp%AvfC z{(t@&puUeKCBfuU%%c~6Oc`_9Sc;1qJ7<5-rB=|B=>B%dsaNsL|L2Yr=kPsy@sfr4 zQWA~O>F&zUpFU|Rz41hL8Zeb*0JH6=hr&xr|2exHrb6_e4=UcVYo;H%#; zef@2Py)XZ6pF2B@eJShvZgy)X3Ld}m$zs8Zq(GX#ALHGkC1i5C>`K<_6k5IXDrb_Y*!J$iexkJb4ox z5=6gUWA^u#cH9P(VV(Z#JEuMUl&jpA!LnoDRCsk8m@%wX>hs+tQrBwirhhz%r#nh5 zPj3u`2TK{WYcfNXb83*R%+QptZG^)Hx(wK``nK$Al7Z{OiAp&TW2(uKxhRGc*}-u2 ziJ)VOlI^DFLH^b4QsZUo^JMdP%KT1nnca$&mEHG+a5wG#gKq)N=5Kwk3Zv5zPYyhV zlegZ>CvHiDKgiSdoLdDq@>X9#uf@v`zp-F&ZnZ2xG_FL+C2Q@ zG_BcL1+OM*jf4to(vHQ!kaeUI{W~%=yMBv2iam(P-bj+s(742j+jXO1{S}s_!!vCX ztGa1?AIKsCH1pnqVMyzRqy&LU(Of(XWdPBa6}*aYca_BU^g6f4eJ{qlIX6F&`^$mA z@RG2+(Lq_wu$e$m>~rF!sY9IliA?d^l&pa9n=D1qtJ~r!4`Pbw_@OYSp~$W0L9wyA zZW+F6FAE&Pucet11pnm+)*yfeQOK!LYNV65FBeh%H9y>}o?-lov*)ZWElsi~S^jXU zL=nq=4V0r+(!A(t887|Y_wehWkI8#x4YEeG~G9Yc3_4$?7nH%NEakl%Pe-+LVU5A1#Ib*(sKEj?;n zbek)hNB-u*Y2@1i?)D1O(r(ULFXP&qX0PPEBengGx6`ag(QUU#kebYn`mR_qTB zBd~4dnV!G>wY9cVF3`H`r@e?7IN2bm{<+|%R(KUj;Dt5v-t;UWekH7NLAYf-{Pa1p zQo;3Ia@B{RX#F$ok78vjQo40Bwr-i_l^$%zY=&PBZ{kVL$%NV&K6E3G>(dmdFj> z)TpeA+yOzTuHc~~v2_Jzp#5>*=#{R{oXwcmGnW z;u05^0>o>NS}gJ_9&&YP2I=0Tyi|sAkVdWNdwjgVyPYdg2iw0@Z2F0bd%I~Y9iDv< zc9fNsO;!$P1mvdpo^jpIh89jXc1OoV4M!u44Cyq0-?WVAJ23|3LELE5j~THZ+RFyB zem>U|@*f&;q*2@6htK1ROi_;Eh#gMiE$LzLNgP)h7iXOWRIW~d_>NX^XKtK@E@4m8 zUHG^bFKiDf#*-$RFPu58X6%YwZdjG}=N+PsDEh71-2L0I%sfDSpG5 z4IV+w!dp)iwvudlW|e+&HFzc+tVh=}&mm3jL~JW@o|p?y-YgMv_E+NhIJ494iE?u~ zW@Rw{Ookm_V3;@2&!7j4-~YaRHChzCJt6_pf}wgq)beV?{X>^E<$vks;$NJ=k2I~l zitPb-E;sJ3a$hT`DLYFf4!4Hp&nZc2tImBN0o)IjP?E{#&XS!KB8%d4QWz=oc6H&? z(s#X_A=as(d??Ge;^In)pzZK$r}$rvni6SM7<*X^u1%;nhq`IuK3V>UHE{>_q*h5I z>>PJxMPQxLG}n}&p^G?m+XrwKF-JP~D(|Dc^`6gmYF9lsECx=j4=dreF!_lX2+pW3 z$v5nhPW@I8vkM*z!)%mvIGPE6nW$}XfXZ3C;y(VKS{qHIY~dWx@&;#r+sz&4@p6m9 z7E`O_7c^U_2JmC%ExjK0xG(MdOgf#3{F}I*3X`HgQa3#QM@2A*=E)W^@d~u*_oX(9 zr>1YHBL{sghp|W6gC1jmt~Au3ZUkHZyj>e0U^vF?jq?QMGkYpZ`6Xe3dGzfoeLn^MDlbf}mAB^S)s_4NJt z0=PNC5WlS|0e-JY8fzPFQ~D4YB1fS4S#wpiwrOWDM~Ngse8;lJ%^&RSby7RoaP$XZpm9xGzJ^c_BC;KZP zD_Xb#7x9kxHEo{nJg!uzSq%#=<{>!bK74^&C0>AiLsd<2YZs!^UF#^gOo$rIYzC$? znDS_?KKzmo9o0h#VZ(eT*QY2>#Ne!cDBJZw3SY$4bGjfiN;4mTTl64OROmt3q=*eK2`L`@qCyZifShS6Wv zE?TheR-K99(*7IK`TRMA0XkkcYO_R_^g!rvQ>J(vTHWuv{#J@dM3A8Q%N+Mv`&D?u z1^?@T91zGj8a4^kyJsb8>t^~V%8C;pVyM#RB3CTmUXZ?^_%4`~SR%Y`*NTI^6V31yq_C#saqfn*F_qDAk1;cPl-;T^EwLAhT0vV-mYkE8s4}?D* zlD^GQbCy=jx3L3D@8YJ=uD@@8EVM$Ou+N^xX73hv8*^KY92~x!$a)9-q0R(hEod{N zp?fSolCpYDtH=Ras|f`}s0jPqRS^qy1VLxH+yMo6CBdv>I1D9t{sZ}O?yD)~K;cfd ztv#ol+RpIWRYltt%1!kZ0yL`Q3Gb-9V9q$eK)>e&B9_;{qw%MV*1NTk%%A@ymR5XN z&=4*>$nin9yX;z?eu_V9TCO#{)HhT$#8dP#y+p8m>C(!f z*{uNj90Pq8H*3Wxi?mL68k39Xzs%+wbe^=ezasRFbZLIOeJkESsX5?!?o`eTs;T?1&%T z5k_zDcUwged|jtc9FER*@_s6fjdyWr`92~^qB#a=29UnVnRjh?g?r>HSK44-3AwM0 zSSn{87YEPn+hhw=n%$@n?S7UuEFE6V5AyP7UAM3*9(7;%Y%?yuW<`QnwN>cY|4Gt? zL2Qk!>|w76^KOBqX3?wlY_*Y*fA4fH*;&&KZpa4rG&8I6*CiLdgw1q4CdeuOrurdb zzYNbfUz>aVNW+cVBkP+>lFWzRqNT~VbNeKQDqA>dt%G7Z|6^@jAGg!5~Rt3-XYq?Iw z9*5>(M?zc3=Uc=a^bCUNueJ5VUypGb@WRhrZTe7wn2q4oJlcr_!@$K1gK!|qGy_@>;btPXDjsGB9uTbhQh7{jZCtnB7hbGP02+JNy& zcE3hGJ%c#y8n06+io^s=0`j88E+ss2W0u{Xl$&gbP@h@;y|*Xqy{qaX7e1dM%rU@r zd0faiijMjv-w!@XdV9Y<+O!@NUX0XKu74%aQ3xOusjG6E<;bX@uV6%!)+8!SBl#n# zu^}e7xR+;Ng5W-olrZ3+vIFKl-|*dP*Kn zH(d6wHINX4VujOpC9#v2`6ylr#kO5@0rQMeRWeYtU$2CVmC>si$fof! z+=DM4Egl!k0R(R)o{6gx_GCR)rGf?+E!uwn>;5h2{*m%9z1aH+{U$ntBQMru6WFY3 z`@_#;1#`}CVZt8%hGEO(kNv_|jxYB0gXsn#Lk1F6B4llwxPqP0VPL$+cWS2kCMlK` zt>$_Crwd!x@+XP9fcWjQHD9=I*LrgIL;YP zs@{(dx$f~@>07FdU+b~2PBT8C8fYnO)nB^mn% z2l&uKO(*Tz{BF=cKvf8q%3tVyU)2uRMZJJv6frrhgiP@xj+m38#V=<>|Ja3~8Is4# z&tlQUt1MoBpLAWF=9KBeo%+!T_wd!~Q`x^i=^eXQYmU?iy_(L{s-=Ofx@r98PesXb ziJGYB4dMyT)ncDvn-h*vT0^}9!;{YeV)qSR-am(drvXv5p)NKKb0@OL78g^7)2d@i zBQJA!>WJ-;+P9pda>B0@pE_0z{SVmT?}HR~+?I%q0VSc*)WwuF)@DWN9FJHm~cJEUQH2!Y2=?P;zjO0Ha8rQ%34~}N$)JEv!B`;>5gYmDYGL4S0B{RWuXGcfJ zSqpSGov?M6Xw>(p4i4MREz^=JO54?1Mfg>1ciyTKR_hkmQR|%^H?{&)ffy|XQPWt9 zutlv^TqAjv(Z*G=PlroSq@%z}sc#3BUd$8mJ#IE;Vk4}E1a?Emeg^N*C%7JEDQ_Dl zB3Rt-@Wuy>3lb^q0A??|<>TvfVnwKh1{g8&9XfT@;58BxF^}ah(KWsmpuM$_mmQP2 z@Tp}4XkjHFcifZx1b=h-lSLOAVyZY(a|Ibze=m|E-PiLg!n16KMzNL^B0-?ors%Re zJ;-%)usFTOrvV4EeHyQ1#Rk(9#`S(Feikw6^yulUuK}HzVLme#CT*sdBJnan z9%UwoCd3m$^!|>a39uwnt4P>}a%5y#J?0kfQz&%>C0HP^om5yU#q@}u2_KYlv+-@G z<4d+fydVq&&40k^ZajRe-T|{u`YSzM2#)b?x5c{Ds6KNNJQR62o9dOt-ibdc$l0%x z%Ydy4Zo!Cs&VYc#clTs>c4afccWdr#`>2R?unI^e^iSI05#6+Px^BBlSngDSg+&Cw$q1`R*HEHUymT#Gdm_7wXwYEl`h>Bt`3q%++&UYx0whM+BZyQ zd~)86D268p9^?-v)=D2F;8O6*9BRgna zmRr^aApo{^T^u}f2cz)R6T+SRPV#KiBN$#5M06nrKfvMtx{hTI<$03Vij}#Hm?9hs zW=DGcaop|J_e8c3p zT?=`6T{|J69#~sh5hXx#60v@$7JO-i0Otq}B?}Y};U!_ULv&?TNwpJRVU_@gaIdqy zf`F$tYjPY@SVIZGkWS*K`wTb3zJV5D93Z3V*4~WtTyxw~dM|NoyVKO3XmeQ?>vFfv z@OG;0&ro2b@rkk4dXcJ?@MnI`nkJl@1^4YYoJ6_{m&}fS#n>(5{PsE5^KzN|QV2Au zzkeu)Nfo)*By`runhaXZd?w*o#mH~K9E{3$8*@DH*S^{w8Cl{mh>NE9 z*dn((iEMvJuTRJE9iO;YlXW)(n@vN@QVZ5nv#Z>|ZowDI+w@@1!It+JF%AnKzfDvv zGNciN4L>YpI~7XxdoV@tuSS%%eZw=_VaENWum!hJA4~<+g5L%BOD z#WrIC!p!P#d5UQO@nh}+Dk0t^!9S*2+BPc@Vqt3x;(HQ=etYvP;n-n=^!$Oph?|v- zI$h5Bdw~Eig3rr)%*qiH@L`m<)h<5)c?_4+j<+7V!izVm!4m3uF3eT^@*2#8(Agj4 z7l@a$5$61J>-IK>Psjm(LwMQ9qSysg4eD^;C3-D!GvIwv`2?40>>UfT2z9GqeTxpI zvA-(VMiCny|Ft_E@m993^z~zKe+FIKQ>weo5~nqOApcumT+wX$kmuyiryXxrHny9( z_F5Y?1I>g~&ZoO~@7|qpJM2&Nu@%;wn&#!@L6Sgs3pI`=6XZw}vRrr9Ce?8>AEt8= zL+oM9jz0 zF5c}{CdB<4jkBY`AEF1?%I!??Q|YH1?ZA8nDHTH?=LRXWnJ|B^%@;2plv+WxG<5Pg zuPYvHid5iCJ%L0%Fy2z8BmeeABYn@6vC<|gZ8&YT&>~`AEHR>(9wKe9PK}4X7E%9h zyJYCiZSK_e8`nZC#3V_!Vzje39b@94p-VRz+v$DO@S4(pcT2qkqf(^i$t+QeD@IVVRBI;HZT;k% z8#nq}-USB8EK_q68eE*|ouG%25i{IZ<^?25dB>E!bUwLNR=e`b(Rors8JjQuB^57* z5N6i*G+yeWbw5wODBW@t;$Jz`3mkJG9K}HT$w}S%Ut2#`X;WMfTuBV4VR&{#Q8f&F z|6HyN!86f}xevIH?2$9QqGg>}ESJT58t98iPVndHnH$N(&9xOi^+b<9f3&b4WX#zk zzmW__sACVBF|oKXa|gZmPR+UCKsJ2#MR7zRfmC9TFnWj+y^Fz@jJqX0@X}K8;&;{E zQFT?W_==x>&w+U!1NO#XetEJ4UIvNW4e@)QT6p^FVLyx_?fb7L^AmS%Zy!0hBza6WifAcgr$AOU@fjgm>Dt*P@t!$(67pSSJpev?R>p1Z3NttGml89 zfXoZawl&$5v1d@;)>+jPITmj{iH(sl2{iv`7!jlP8v8g~b?r)9v>s$F080G)&SAgv*bEX5Z7K z%2T};KRv)FQtAZh&JqiKt$;M;e*-G6ox9q}nYV=HzfuZO=3P;a^QW7V*0MidEuR}1 z)iTqOh!puq22EwpofTasHkIRp_%UC!tWgf(5zFj2c2Z(P_A+2Tt*rn)4z5ppCL#~o zjC}LSggjVsA2T|y#)=Dmh^c_imvs;wKGt|Y92D6I-@G{czGgMB`mPbCtQ!(Nx7oB` z^s`t<7`)s3SQRr+gY%>@hEh(FE8pqUQMZGPhdiSM&x~0teNA=Didii8@@2{c{Ffd6 z9}ff^$*OemiM`a|WDSML)m`(7yx(8=D? z5G*iTsq^V;E@h?YOz)!0vYUcU{REcyV8WU}p>;GzmyF*yZxoqV&pFm$8tDdJYld~W zN$Ih9vZYm9rATRojDyI>D;h+kYEV@O^e;i`O5tIfD&^Hd#i1Rf7SV%{BPTFL*L9-(S$(P zr3~}D5%I%H`Gbzzg}UehPjXLt-cBf>IfCdTjA=bSKGWGm(4D=ri26y^-u9G& zC-0{&uSLf_Y-_|#c)hBiXW%OtCkMWMGTniU1DpR)4sd=M+p$ly-%&VtQsg)x^i&Kc zwq>yNQ|E@Wk~@wj=5;$+Sy=&{@0SP8fOM_KqG4KX;QXh*{eAgSJ&<1~vEB21`AmE_PI3I;4E~htCAGyFEpY766JLK>*$?&_elER+03h`CnBx*ijXK2T{$Xk;MIAuqV?%&ipVyO8f`P#61I0l z^O3q;GLgK!J+zakt?ylWekk_9gUHl(>)ZG`*)cYTc&Vlm68Y)mYQEW!3`xd_^oL(w z%}ec+?d;hzRF08=qTwwhKNz^G^A3i)(-m^jBe|-B>iLSXv3 z4{HBvo+V3o7PdLeD2v=&(Vd~hxE}w-%k~>|ss;tm=f<)iE`uiZs&DhSrDtA?MKrb4 zj4o8S6~(ua<`$+D>lBSADlb~xzg}wI%xiN#ds%#bypx;7a<1#XY^BRi{ryKrGaT7> zxkf~m!Cq>yQStMM`}wExq>X=^I2^bKQbrj41%|XHP*;?mmm%h3h{IqB@vAbz^Pda# zS~=5^rC;sRFlJ!ac&FYwa9NXA4k6djte)usx*JeCEp)Ur`-6~wZ}{}=M~ORa-Y7mK{V5lRgxL-VUXoYl5zil7z)`A}Jm-CXB|TgzF%?ix{zCqc zWq==zd_m{~f^9Kx);SOQTG8Eb5@Pe+y*1iDt$gVwyDUH!uU}{lM+%-K>`a|?>g2kZ ztHyTH(|dx5cIG(D1~$~IEIbB~LL|RK(09`vt&cv@Wy_qaf%7Y*%Ux*2RG@4~0!z1! zI(|GRX3N{}TEgn%3w?bEG2JQdFMnC{d6$|WFq!;(ICt66Wt$@^+yu#qcZ7h4|M0y1 z>VBpTznZ#rL8^l}pczLo08k?KwzXtUhJbp`JmfaV_L`K&)~h`qT}CMb(Q$%Ed@v|&Tw!rpsua@C_W|jN%q$PZYrA~#7A@bDU}j<(+KdUVckS_EN%qo z{TDZ~X6rbmVCt&selMA7EA#wRXjnYa&WwfG!AE9$S_v>BzrqkI{j%y<|LNBFfOV_V z4!P>CjIDyqF8wq6gospe!>-rb%w;lUVcwsd<;$fZ5gwD^)kMQ2)mr}G?>b-XmBB&Y z(4c$4MvQy>6v|$(gE}i+&eZJ|mPV?`zY@*&Ea~-+eA;A~ zb!(txUEYNg&SoH1H&+mIjQyMIRx!L7r30v1BX`$;XIWo6zy~ zcKf}6EPN@JrvpUzrL+YWsk^E}(?Gza>v}&-1g|5Ok%TmC=YOR7bp)2H*;m4wHk)D( zU@fe*%Pv_@r9ieyfhNuvtcBI(GBvgM!pfRzlB=Uafr?}z0xx{4d?(9MYEaQATGU`e zu~apIN|b{k&|pfS5yTwD3RH=908v6?JS48&Ss}CV_Pzygqj?lz_DHH6Q5<7^Dc*JK zC9eCjOhq@Z5Hxj>c;T5ydbeXznYd)Z8=h2_Tu_iAB86@MUfEx+UK?z$-|~|x**EPt zU>Q7SWe?As*;QN2mK#(U&mYkn=}<)2h_p}i_q3>VrtoQ~3^THb$7&ko`a*-uk`gxu zo}rNVOK3t}B#G>;W$HE1tknA+36ZMzxjRqn8$G?A5+j{3bdaBczg>qDL&qMYxZB-1 zuy2x@s=S(x&XBjPTtt2>#axHdhYV{oY>6UK^)vw(kE^BNa6UA1%YYWH?>$Iek^FtS zVVD95tS8j+hbkG++}sWr+qoUe`NQ%nZMcP|2#^@n{=+MaG_Usy)zzdSG93sYdBa2_iOrU9p+{~4N6RYr^NsJ+Iwy#Dv@8E!GreXu4D-u*qk238HxG=t{lSel`s?1ysQvZ_>s&@88h8 z>YWXnKuP83o>fXD;Zg^TK+bOg44kB&%!k%j3__Tz1{32fEch$x01a;r%q`G0tIy4+ zFAf%-ckxVCe;B^9^@!YE`inT9+_oQ8*t4HOYr@>G7i-(Tw>2h%^h-dAY;9^rJn8Q= zm}qu$8eYSLyl5r1ao&UuiFeS*&-P0v5cD#tAJ)W1O^o*Lvk9B%Jd zqsAFkqKDA6zA0fLfj$b4VvX+V$aKRTni4sZrj;Rjxvh+vSm{j@L$iykvo~j9P6MIN z?A2oqR!D*8flQ}qwjF5Znfy&fuMU0ZeI_Mq?qLNr`3UA3%C3rVY*sov>ujYX&y-+m zTqHk@oY73KBRb=uhBr{;zu^-3j`~LXfh!%$>dzS59Ft=e+bt)>E__|z8x?Ai+&BsL zQ4#n=ZKK>~L&WMBH^2M(c6WmQLev0Ifk_?gti!83Jhc~c0KUh2D`1|X96pZmxVQa>~;1ESu8XqERMM%WdBvK!1OR?{JDU|KpC;F7@L3H_f*tqgQGA2xqZ* zRCRQHMDACo7FB@Oeql^+$7!}BA{Ari>#w7@O&#IWimP9nJ? z$MVOg4e&|C*%oDkW5Xu~0r>H61?yQ7Ab9yUCw?6S+|-qkWrqyMKSp=&f(*x=v<)P z$C!1^nzQ~-R)%Y2RX%^*(2J?s-P{f7Rx`;@a8fgc(tz$6S%=?hL0*~j?|_hjibepi zafu4wYh(Jdud2+JBnR=7x9cT6iKo(H*8zKseg^|5V7^D z5APUe6ybBCgH{luWd+@4MUsDSn7$&Z1;+&6-vp-JLXcUk33u)*n1)Q>Rs!W?mDFNYAZq}st( z3a#g{2NfJ6>O2V?WeD{*;WbyDnNP#XB+(6hs+jdYagwM3Ylm;~s)1BJuU<;i#2zOF*xKxe8hT&nj-!a^-t);&2qmh z9|!GTtPc6wm0C)UzNR4&)(*W-If^_tKK@YSNW|2vwCJxXpv!_Wp=w=IKTioJXkXeh zXOU`pX}=j7jharEh@OVP5SvBr)#9iIDP}G!OtF*sLDcJ8G!bk5>3X2IzkS?o*hct1 zzk8R>=EA{q0nrhM@3-S<5M8P=^h_{~KlJbg1uy*yZcE&1;Y~yi=g|Btds5x*d^?1(jf1XSVC}4yls_|q~-j5;Qdiwl_aCD#%tfRaJd;uk2Y#H zRJ;}A-)tW#Sz0LyKsnvL`74n*e6grkxgASLiDE-tO@l4;l6<-Upo|hv;e=|vmkg<) z?KQBXH1B-YNb zZ4Mt9kQ0y=R(6$=l-PY^W(C@T@$e;K{5y)~aZ8Vhm@U2HyzWTy%I+Z^t?Ij8i#~<3 zS4w%cR9VZ)mvs9*_`%(lCORqXpc``&daDP8OS|ro)c?~4l+0+w4d4$vWqdUqb&4RCC zh?9>1^~uRr#aDe$iNg_A!~XOva$iN;$2bj$WG?J}jrHK$TndR^j$$tb(#USI9u2m2 zWes*5`>>SNjYMk)Y=iEEU-jh|Z5B;L1{TnpjRdX0&b0 zvfu>IpBqBZ3K~^2yNeN;C3MaC{yz-SjivQ-!QR@IU*cG=F^JW>o`W}EUR%6l@QxBg zUw`6jmVPOd$8roYo;gV%D-!2l;U9^)l;ck+OlBQ?bB2=GY>nb25{=V#wC@6`Vh-Ld zBz_UTR5m{=qK|}Yk2NK9%2s&~W5RQlQsI34sDX0x*1 zNOj92z3loP5Q=?DlYDKeI6#x-qR;Pms9AVFkYsBU!U6?H1n~KJY71e0424;~ym>2u z?FO9~95$o`Vm=3scidSFbhHd8w>BfqF59%o}4>{>X4=E^@>y zF4E>hX@~e36Q2wCdqx>m#J#aFCfpvI-|GbElXtwITWKS%LC$md(_Ph^nEXGmgjoTK z#GWUwWoJGIs}D&-w#2QO8byR8F^8*rE`zH5c5S<;$(EnV+RuSNE#S>n3scDmM93U4@EmPGf$Cc#8_DDe)c~FD z*i7sb6*M|>VlPjch+nQY&6g|;(9~^jzm>6AB1oIXF4Z10EGAoWulFap~bR7Zdr`04na7yU$7UY`c=n4fO`-Nt+B zXWBU!G_Ycc8*u3MY!_Il*jb&i?zS?`vo1%l?!S}s2}T0wK>WsMJ<49bWiUrOk-iO+Ms(0SW?Q}6Q;7)7f=G?%mSvKMi&vwH2hGQv|opqFiR~i zoT5US&dH~#c{ox#36ig+HI54wQm->~*`SXWlX}ZU>sZ=}J+;YUAKp{Y|1ctui%o3& zGTI~PM%xVN1VnSXkCjR#_C*|SR?T$ndwt`S=Q6eoBcoVWA>mA~&lJZUcj{}RKcr%F zs{wX@#!bt}J{CPI@!J&td@9ilbb2F;yNuYNt&W>-1T9?p7?jD=F6alSo9)`#TNXT^ zj}dQ*U?1sGQk2=bMTqZX`FOeckb*4rK4!taoGm!^9`)_H2$g`Ii>}NGNpyg@Wc>Qf z69ZSp21pL+i=Aew)n`G)jR$;D9cWk9_C0iH7^SEmkZ3>YQiHCY0UC-P=uq5hI$7gQ zy?GCkb$+(e)L+*g-404F1K4yMK%f-8FexL5L*vpRpRrIvrF;iXQH}K2d z;X~Yhbfrn#i|nZ(kphRrNj$Fn(D;?#rN+!{t3INCJuyuzLIeg~eBhE}g$B5Js(Xfr zL-a}L>1K;&&V*97Gkci#HS%IeWKEFxG_hq`aC07?>~>_Po3>n}3AkS_-Z7QiRUR2D zZK7bdG$yDX5%HTo=H>(Av9?*wF*1o3E;Z zRAinm8uKl3> zO}QS9XFLqZYH^_*zKa+i8Ax`*w#VCY*_Z-*TDKA+dKY23A2}QnWa`Qj5$IGBk7N;P zj#Uvm>%fqQSFhv8>bC0tsL*8s*-40DE3mn#gX=P#g6S$L0nNd^xx`gNy+$t|1(ZB7 z)0#Qab5^lO;%|0nhRW28={ADfk(nF=%8&Y`7pzmQ?2$g2GptHP<2ZJw(u+tAai>w?G+y_ws%Q;M`D?{5aF ze}u#k&{rW-;1!sP8r8-@WHxrxW-1?OQ?jr@0u{YFDNTG5KC zlXd24MLA;&xTmG{4H?>5vI6;>+%UU=#6{~`bSidRwjO4i8(sd>DA2}Nk5A} zw)UZrDld@-?!{uSMFbCXO-=A00YNNINP89se3S~=Z8&|K1*zSg?e{~^c_!N4;|Z4H z!|-h>BVZ9L{PYWA2!{wFol<53gA1eSdp{ zTFFMUk|z=*+j)zpLp#AXjv9K@E=0A1!V`&+;2hvoc0I5O8FW@W3l@MNUn2`EP;TL8p93vMKk`2E5hZI&>{}D4{9Zb3v6un*U@S;xy zTBV<~O^i2ee^{g(6SXi$yi(!t43RlqD%)Dve{{&$5tT7!Xk{=4X5w%0cx9-z?5-^p^NBHO z=d7ciCO<5A2lScTte?(smUHjh&=sic{rcc*SVlkDnJ){}^a#)YoCFTs9g8;>Y4j>G zv=SVe)(IE-z^44f`n7K&!2i2ng(MM3kT&E}1?mB1IP4}Fw$w`UDKWUUXc8T>y5PEx zZ>D}De4X0$JwrluJoGy=VlyR}k@qv5k8JaNiU`hy)bVt5)S#n=3lxIhJLpU-$Vd}w zQDf=UCl_0fE+f0U2-Kp!BmiEoK=1Kfw=y9 zt!Y(_ZaZ#Ja+u^^+V)5HZIT=OskX?^B!9d#J(+~||53jy5Df!V303#s(fR?(-r7Fw z04=5%Fy!nnmw2qArc8yCXH|Rchu%s^CA2aH4&G|Zn|G6?_fFc>Ejv{Z?wbiLmo0{( zvMW>*?N)2ReADc#EfN0NFv?v~x%(R2u=|r*e}^YZ&NQT@wk|lcNx=9yV))}JOzDC@ ze!Nhwtk3SrgM4dxNA%cyr0XNobgqTW<0ay$NH8XRw8`u`n0zh={&~;Or7d#gWV9o zr~%9G7Qz-aWB2yY3bWbH;Oc}&JL>>3oz1mynCiEv@!4(`?ewj0(oX?UOy878tjEb< zrJh(DAu2UYqc~GZH3@NA!b3VWr0A}RwMuUy1A2yhQuwo~d0F{E;=wqb=sEWB@F-)k zMac*_<*|5>^qJaswEKEax zaa!H42~~B}*zJYBPQ7xjWv&_qG5GQCwu_|ksIk8ZaOFvII#?KCoy=BzgipT|I_%Kf zYQ^6A_6GlVD1X4>ru$TRyP>qbz)c*rUjcHK8A9%Y@CdA+KmRiTFC_g43HNcmWVefs zmVG0Q)PW2ii5IjD!s(}0@!(QtdNK@1jD8Q#b3aw5`Q0Tirz#Vg`fYGt7We*p0>-Q- zW;o{|Ao-|(=cCyr_o5JKYO!>iMZXraowae}lw#^P;XtH0s9X}`s0{db&+X7-9%Af3 zf2zPK`==weo$IHoaT`!Z#*FNZRH}g#C!`*S0xusf@^6Fol9@)|Hy8=aaCBODtf7G;~C4nIMZ0M#KJ9G^(*dx*r-}k(Xg6E zu(QDV##SZOLCEihdGa^S^mr}IwAI$^r_t+(p-?SiC@aR>*hjnml-EeGtR(ZFDg#kst#3G??FL{6DJRfxD8f z3m1)@j%^zq+qP|VY-`81JGRxaZQJVDHafZc{m#APj`I_$YRy%1KAN#Mc>C)iU{=(A z_10U9$E^U9{)FF?87Vc)?$b3?aaMVSjCzq%l|d)|kc{tO%0q+Qd7&a>eI}DvRpy*?ylVaF4GadkqLz z1Pi#aH`qbsAz~9BorMG%j?@M0Amh~08&0CZ3Zfw(J0>Z~()u&c-+9ZhUCF8mB|{=` z($~qs)NxhMyoiGeHs_ruUUkGLOLgB9<6HeP&Qn=#mJ6gK{dix84Wao0EC~Ip%99Qk zNKbKx9o(rIJ}iY-y?$+v)W&=v+n!aNni*9MZeJhI;q_3s^QC?Z%Tl0tUUyk@?Bn3+ zZ*OnENS{nraI)nVY=4-laOlSQ5WW<){hu*5nk@g$+P$_TDl^fy!fh4sOScPm5>s)o z@RExkl4XA~U9~rdae7wm*{7ma0t={lc`Cn@Wp-gNs(*M6%--Z4QyHj&v`6tzed8%@ zGB@-na>24d^FXKhN-n?h@D{X6q%7~nc4Z_G#QLar`FE#@V_Jbo_J0`ScUNNhn19VT znN%(kkBg3Q#^B@wK49qkoCtyj_JuV<7hZI}S&Hcu`xkVjn#c;Itvv;DI!I^1>QUVn z%TmnJCtmF(vA=n6tk~CEL{JRt1W{b)l@h(L{d~9DiSYohC;y%x)e%&X!B@oHz=H6y zt5tu;n`mpp4mJZRVrmr~0E?;ud0Fw_KRf!yPEFFVsYIgN(i}C_;>;&a)Ex?wNvOWM zJo#HRy<=SI$VUI;hvV500sk*Qyw#Q23DaY3m9;CZ+C8)bQxV#z#^No#WxFrbxenjB zRKCNv+G0RJ#ni5uQGJ*qOX5}|BAWWoEd0psHyBDLR0~&-;c~FcW%r#Kw`#j4YDM@F zqX($bA+AcDq3J~m&c2KFmKj3G@?^l#WZz|}jaZhY;%jY?74smo@)gqv=4 z0~5X2^F>Bq`v&d@!xXBtjDNFZ&5uW5#%}jMu7!L4+Ih*<&V7Yp7Upe7Sn1?J*<*Ur ziciolGLM}YiTgJj6;r&?3%80@YE##?+-@G}2`+F0XC%R+Vz7E_;nbP)&XI$4xRQ9*0*fjD6IBfZcAE&JNwz z99kKe%k!+T$l@s82M&Qul;ROK|b z{S|G16Su0~avvvhQSE`4rVJAnvolBa4xK!KuSmXD0cUFE3ZZi$S+Lc;`DlWftr-|g zNd*X7;j-1!$=*A>I44gTjzU_L@);8LHTEh=xj(UDmphitzs5 zy~r!b=Va`(I_$C`$;sHY=(t_@XnvRvmMtLGyKU0z zNCb3bHF1JXC%m?xl9Dz7r9#2B%bc55{;<=V8no{nlO|}mG2ZX5wD93_s-nr)w_xR9yicPDyZIAfGD1_=E|Mrd#L zr=lx}>D0|hg_7WfkDxaFdv9`V5`52s(~&yPC(U{gDW(LH8o8fD(kF60zEXCyy~wQo zNzeZcdS`RYU|1DRTO{{X1PfQuX|do!w(e=7_CuKFGqsnAlU$GXxjJ$6rD~${sA2&a zVIuSEjvZx8yk*4TYMg-`Sp#!t>F9`&8hOs=JQwa?cjs_D5Yw>RFJtS@N!oF)GdMTuAa3lyLjwOft3X=3lVy`d5KP`xm0l4Tp!lZHx2$){>l}gRyguUdE2f zX%;S#^WthDh|*$wWZ_w`kq$xN9tNBz{X>zY-sqE}aW8aL-2dXR=K5hyNepH7=_(wG zRva8Cecyu`(lf7^>zplLQxbg>|0-})+O*(i*CGuE)KRN2nZdF|1&mPSjCE%K* zH^HYFzjAkB8A%xx6w4ADc}21ukox#O+?xu!jSg-sl-)Wa*ST2 zsxnGqZRXj5P-1Mz=HFoHHa{*%VlTe(dN8PZv>m@2dEUP4dRK|-<4_~{1z9NinP2aW z(Z{Q!6@SyPGf3iDYK9+zhIR@pP<^6jql$^n;7>=#fYosLT>hM;ydyg@=EfvZH+&8O zvf#PS+w671^cm&Fnomr61=9_~5xtdxKv>bfpp3%c$9uQ#QajNp#o;s=R}VsVFcFEH zY0YVyYTt2GBvp2IXu zeC!a97UMd_V^=2G9!=kOWI7T61x+cZFI0E~q4ECc19ELhO?9FmyFKf1tQYZ$hl0%y zru0k7b=z~%Xd!$N*`ZTeP)ckxk%u3%>x-|797#esX6``JKkhJ#bCpUnB_y0!NYLb! zY~P}eXzhnDz8pcj1e+p;79xv4F#CX0QLohKPm_UT(0zG3Y}iJbM(-j-?7ic|bD5r@ zIV&(0`VN|73G^XTC(`E8X+RtELJX(kII(;IXuIRPTSj9<*RKE;Yp;@2YFI=B>Qc-K zk9ivi5$*cl&D(@la1eO>x8MpgJIr7au(&|5(76;yDL*YM!$1bUJ7kGgQjw&~2imistlOBhMsEyPZ-j+>bNVcQyV&Lh(O0_4L8)j@IZ_H3dfNTp4-y+&H5Vgmzwo|>jX zbN4;*93;B=6Mpb&NMd4ejNSsz#vb%_fUVqE0LE-^x9N#gw`Xm4r`Tf!A(tC+DqXQu z>07F3@)~ZViyPccig5;HgwJi2&a{e^3v(8cN0tAlFk@nX>1cQMRdpQ{qWJd;A#r5? zUrn5W0T><}W$cR9EUKtNsT4x#_V$N1-bM1KYYpL)xCPBH{h9jkEo%@Vjx_(#67xE8 zlGVbkC`F5O2gYRpfpKc*;QXc5(RQMb^9AA{cHALtz7)Hd#$BRA^zw|%VgejEOaX+i zEP-M3T8f|vxFCw1QoZ^eWWetdp9sA!0XqsKHf^hvql%dT$n@fh!PL#q4T0xC9!^o0 zewDlXNiJloiVzczN^`!FT{j%#E{U~)XVhv}8R>(Luj#KOKGNl6K*52qGt8A~ zS%uyQO9V~|o^hN0)Xs2a@;Ku+XU*(3G}v9Yx1}$BdMb8z{#Wn-TXo*Lp$1dyGA27i zYY>M9=IzBdPa_BvzOzMqHze!+?<|mlc|m~T9L6f9lO%iwA3K~JV4v9VAo1c)kauHD z;I%9rh-<5fLT7+xV=?}j5eO#8SfL&(UY~Q^K;&_W_XA!!2SNb=#?PyA@Td`y(-Zff z&hvt<@G2(|f9^NBN;~U%n#2Q$))Ft}Xd`411hGGja0k?3cxP(fE#i3D7?$v552MjV zEIpapJ2Q6Cj2Wl#?;m;2ZM9~Qzf`G~L80Yr172y!G*hYwIv4H%gI11|XZ7+cP&HJ|0 zA38W|Qu63+uq71IbaaI)D8rpH43%hMJgE@|uNiZaL`jUpSg`u+DW{F-M#GUhJ)V2%;bhKYk|)GBls; z7j9DYvaj$ZBwBZuFumZ=iL!nlR;8%ZRi?O&AFV2+ovf~`)H>+3IT|M?bZ1Ik`iP%n zfBGHZ?fzbM_dr@y*qF|i>(uXx2VM%KV9+EWI0z4|cX(0)Nx)S=$N5?#t2wLYs+oq% zWt#sYh3;Kc=SN#XB*$>*c3rZqb(!P65kqk#$@&{7K$Fp(LrQgKHRjPl#VRISMX^Z-WPC&tZf@`7RYu zeX4wFhhH}`K}9)wk}ssn1jLe3e848ad~@efp$8#(l!GbPHHUc$Wir)@mRoA;5n;~= zEQ)jbK@{6kONoT?L7Tdq?Ic=O*yLFIsOuB0Ra!tus%oVKXfPCGHceFDC2ZyC`k8Vq zjK_PMB~s%nnUysD+*wslacq$wwd8i+AI2`DBz>=#xW;LbP5y$A5Z3E~&BxQNFc4=etchoi z8)8_hK}ay043DCMuR$}ieq-cb*A^I~`x;J=#$u_#qx#wU_Tal4%m2}YC(+>tg>Mxu zM^@qSmMkb~Nt&)Emhuchg7%u7o!pBz*dcpZ;_h)5-RjKA z3PQqLH*0O~5mv=n=xf{$3{8gB2+i~jhR?en^>&=kI&Dt>)WqGefsKVzC}Qd2xa|3H zfuV7x9UBScpl==JJs-v%RBt6 zHTnqT5REkr?O5p_YK83F3wr6O9y6b{ZX<(^!Q{Vs`A+bNwHtV|Vw8I1XqXxGcCNL^)jZRAm{tD7z@ zTbap~URg5GCwp{4JXe!45u|pEArQ$3DINmtrbjp)i=#y~>!H?*P$CQ(dT zPnrk1Gc8Kkl53~ZCaUmwN$*Y+YYn6p5l?K`dc`T8HLQvP9d9d62Zz2w^9*!!-ruAy zq2nE5ev%@iaAAWQ6uvF5kpO+Hb&b+}NO30Besgw~y9!82@nS>;17iMSPyxOv_edZ^ z*u#tvMmtSagN{D%qWR!4gchb?wvAAUDlm|C`UeW=YZn+{GcDtB+ue|{d!e($w`iqH zfzpb4S=x(s7dj3|F+@njcI zSy7O~yJx2L1*7Cymr`k@7cs`#x(iqH5ZS0v$LogM82rF!h|(mn_*aS*?Zt{~#FJwP zj)zO)n+Qy5V@`?K!ClCiWYFayMt<-yNi5Ww`Qb?vGI^AekEI8QVGy}tHKKzpylCv$5Qtyv8#NIlEoy4wzU@$Nw+8Tqx(MI`9v}6E8tqcR&dfiPCTcXv- za461f6QahALJw^1Kq6z+2-;5ZvDr!lH-{Ok)Oj~;Pf~Kt0y-uS0-9Gd%X?RNm)5;R zn>u>(=Z6#AumiwWX#mybC5>tr2TEovpw`dV5=>}s9_+8#!)(TTf;F$~o6}oZz=3sn zM1ts42CfnlP6em0Z6;_gxfgU~0+Ezw+XxOg1OoC}0H|2j;}a_#O-K4ZYn$;7dg@jx zRzn5;UOa-MY%T@_8u_KyG`OJz)=p3|<{@FKI75`?^aT5va`ke!LQi3ohLh0lY~iLO=}Hp06IY ze32Si0C zBPzz(78}IMJU&}XLh=~9KB;uzKa4`8w9n{NJxT2DPwo}RvXxyWB#!1c!y317xm(9C z1`HEfK|tnLVZ!#RJ-rnA#)#)i23*b_q`Op@l(>$_k{7Vb$!XoFytJ*I=W%&D*}&?`cbS}CNXF(TQnk7g5nD5f{{9%p?TnxvOb z`i@rc6Qd_r-VokabB-1uNgCw`EUdJ-Q_@6eBO=E!AQi$YnuSe>A?u&?-!z>kdY#P% zl{u6^$}90*501OogNgo0{XWL`t_eE(+0r&0jfjh#+;ST- z(&qg8801IPtb@0R?^ zKyQ}x+9ld%9~aiMZfE}Pm(wDuH1%+jWC6XO3W;m+ZG=x}Tt(#mI-`nbT5C+e*5yT% zszV$iDjWp9nHcAI5s!Qz*s9S!snlo+^03lPS4TI z4||obKaKtMzZfY2W)S3&7~{emZJe|_f#K{!ltrsi^`O`V!_`Dobm%#W2%J(j!&5O^ zbU5jO*k7kWk2RRe#ey=HH*1s#R0#j}%aa|dx8LRA<}w=T$+1*?EkUAtGZ+%beHC_M zk7{z^ItM05V2h(nl5ozPz3Y5en80R`Cr5rhR|Js;!^dCQT>W3*_xM83P8k@pS5eX|aZrA1L4XxVqTlmr1KEw1VA zbiuabZx5gpUcyK&5|hY8=e(%pX0Z_4{UD1#!G80ApbjI#22_Gs(xqDG(cjrE|Ebu2 zC>>SMNYJem-eoU-BK0##{o}EEhat+YVhyp<94DkB-xA9d8r~u@S5T1P9YN=0;#y$l zx{&8`LT4(rTKs)n#tl-?iCN{=zs={fK^Z#%)8yGO+lxv@A%1dyG#P5By^$Y6wM^T& z@Dkb#BF1E@y(a=YNsSU3x)B{hN4SoQvs&^OMZkC?u*6vSQgZy&IS^+xN{6ek`}#G( zF_2wW?3(jzA;RP3T+E+W9^y{y~c%@LbotcnVF2i(nRsLk^$jbfa z)PVEVR%EAx?4q4lhP5hiq_bzQEc=E|Ei+uXbFK5b;ONc0RmSMmL@(-%=<_6-i<~=g zksBpJ95y=|N!fb73MnlB&R&qkSsxmW6Ayy`1A4r$ zy5_SWh>ox&HQ-*pMslkF0bBnwsm|~+2Fr*B07_$2%dZ!^G$o&|HFO(1Fx$N#ytcGu z7uTs7jCH)D-efSN7M*|;WOE|n7ctaO%wx844jr^(jdD*VgX7saFVl$n-E2((Ww=Y4 zIdvt0VJM*t#Da#>K|!^(Ka25QKeEoWWa}N_s2M=f{vM!J%43fAF7(5R?$e`EnL^;0 z*Z`IY*-Pi}tM9*3DLBgyZ{|gmjNlb3IsO!|Lg++NOH(y9wV#ultSf0$&oQVdo+o%q zaal+=-N`}0l=zVC+0O-Q9gcQM4d;NuI#Ac$7u{2XRK5bLc!$q4hN(c8bNMx2$LU^l z*>L5Q?kM!JGN=fp_!Bp?J?Kc*%-~db z6`3kPrF(y7x%efG$&R7OBX3oQJ)v8K*582Sj_h@39fKYFg`O=+RvJne24Mq*=`)K|i zjHt{Y+l}>0b6Gl=@mFE|MEj!w^1meVxIt2s!pp!Vu;jA{_-#JvF71`V=d;+pE(w9h zrbVa#qrUF$Cs@k7lr@QHSBGK)0rrjj0{Hg8$S!I7D}gn!!*&jHN0f`8R7i9z2|dDJ z*N00>aV4U)j%wL~Kj=W*52e@DgTOS34Gh43a!R*9EDp`?H_l@zTey&c%8K?j{9%E$ zJes|tniUO}=_*m&9s{9xO%@2etMaWPv9jW^6{Xal0^IRWW`s&M%42bi_V6XE%UZqF zCh1wLRmr+&H$1)`SX>{SM?n;>LkEhWe)vuBqEaW7SRHF%SRl6 zn6`Mnp~x=H>SJJZ#|=++_A}(Gt$mL-GJ?HaM*(k0KoUyZ}p5S=EQgeEgMRp4!$j;F!U<= zl*|8?@zO1<>XbB$2puqx*^gsX!s5bi!Q=pXeHn8zIZ-_1XkNwHzDIvdK)zB*+4Pjd zxwItS1#6yK#vIs{1boXXFG=26=Ox0R4HAc>|2M<>y38$B4w6=?r=O(^(8s?w!PjD( znb%3`4CbQ4-7epLYr@!?I3Z0^W%a`+eg`U(Z-w6;y^6X%v!K~E`iR{JIvomu_G#9% znX&CIWcrkx%XS+$Qh&3#qv@^>5XPS@!9*D=`(DB(H*<{}O}7(-MItf_P-I*AAyWL# zK58G+)Hf8WgPO21;~j)goh2Jn+Y%LBt{qLjCj(?y966(}n@nJdYcJ7y;f|z_xQ2?r ziYar&hutiX+6DbnrfI><; zBWqSTe5Av?Xksj3f##lgI)ON=)>7PSCRggxQ-ki&R=x2sP3j9V@ssx)Dod>zBqG0Z ztC%R9I{w{&lqYWKPDV*-mX@HdpHZrC*cgA@LrPvZ|W;VzP3WMNG!4F}4-Fvm&ifY3z2l90KaCNqkW$VR}_ zHX_6;9v_a?NS1nUNkQ>Id4OylTS|lYAv<`A@+2KX77A#!OYzP^5|U2Qa5c`6nGo^X zsc>|0=Or2rE#gprp+`qE_XQ@>28=ulV?}o@BHl#hJzK*2g_AJ~x9+64MJQ*{t(e>b zIk|4}R|+Z&f>2bcF+BHX0OX;5O13vM0}LmeFaSmpN_=6PqBn>9xuM0Ejy<02989N^ z5Sr$r%<3(d@g_xPxn#oq>G~M$7G5R&yJ=thCedQC>JT%prp}SNRKXT(1ZZp<>D~S!j}ESBI7ht^zB=%F{c*g zKrX-vkN~xJRP8PK)*l;5J%-E*iwS?;oqq>X0oiE9LiKC$FcKP-SIIDZOY}bR*a6Av z*3sa(%|6iVgjrt`GAUod*ISl|&X%QxcGB$}}@NvOq?|>CwZEzfAsw znaW4&*Ls_S=gDjXR2zmBz)T97vur(@s(9iZ&dDdFi4MeS!%K(t^vz!;spUbDy`Gq?Jg@oLGNj|-!sH%!VZ)%Ot|5U}@jIQ14>Ufmy5+ln zuMr|i{yCMnwD|Swa@sYd+;r|gjA;x8LPYS#!{FN`rkA}(^6j||)OFw?R_LuVC6wj! zWm0}!{Kepp_Mh=qkJH|oU*$GXjh;JwHkkoYNjWb=}K{yH(g!xNDt z&q<?eQt^qb0)7m^t;d}O@yUnnr)uQ zVx}Q^IjeDpgdHZ^G!%+z)^NfW+SQwCn^q(Kj5B&Tpvh~bicZl9(KjG4*3g5yAb+mC z%3#(5ND*1JAI+13xGDZkMMIQitN*hdG( z0UE<69T~O%Q({OILA zeYL{5Q~bswnnJlv3~NHyZMCN0Ae*|J?Of1t;H?wO&{gg&nH+3^Tu3A(Uj1r=3aCsGhpXFDq0cGN?q}Tnu7|=T1E!%f#sA7 zCtp^XTn$S;HVkIqx{?Rf8nHklCa&uWn2cMe z(atlHI(EUt@D|*J{n&jY_~G@p2DTl^`a{$w(tUCY`H}`6dSom&1VQStf@wF^H4g24 z6Zj!MvFg9xD=?uvxXL}$T~w0jq`*=KAnp3G9AA0mDU(|*Lun&*M18mm1kulAA@ z_LhK-k>bQ_BybEa46C2c6G)_B|#}Y=&7FxWE zS_);oN9+H^e2sBhKPG$xgzk-lfE#HAOx4gTdTljzeqrwl_^f z-o|I4&AmPUdYa?h?xf2PMlgO=M#Sx>xyI86gEFl}2K)ko2t(qhOtd@y!)9JbJ+Nsi z4z#a&a>Y{Ckf0y1ZN&14Ac!N%rA0BRa;TI1F<%ahJl6gY;FAlzd5JUi<%KRkCesuM)y^+5WT?Y@tct^2%BdBWB_+w0tJsZ{jIf zbU@|yM`~wIp8Q!foQo1j6QP2MlRoAIEL3Wag86^Y-Lh>r3kOoMrs+BMfD*$Eo_x7-vg{*8DuXm9LWvmJlE zv9%i(>CI-FI;vD%M*rPS5d&U8Z+!5{ztmzSF4le_-q&)}{@U#r$zd_B+b?JYrUAJ- z2%CEDvBG?Y{B#Qd>zp?=;0E>Agsf%kVy`1ptuG5|b29M?gE&NLiK8Ywg41e1*;pA% zPt+qFtM|^VW7}t-m0isYmQ{WEk6dDKfnedOJGD#W*G@p91X*M8U7OCEMJ*AFB8n31uP3R!Dg?xDn_#KOBSw7mR#!MVj6BX% zZ8*@@PLN=%AqMDQjKp3@cZvTIO9|Z`Ix3X*{02;zJ6OkP3vBxQdE2wBXV_tNJAv6XV}v&J5>WBi>z zYGKx}9v|UbgFP5X?J9isLSZdq*?y<2&D1yE)^4D0>34Nb)%2jFq59aUu1&g=lk8*A zhODEPBx~hwS^mxViAJZbdhFVR_m$5Dyjg6-4u>)TUzY5#xaeqj)?6!9knOC_5(mUt zwSRV5yj#S_f4uI68Ee#pRc_SpQnOjekp@Jb|qQ&FE>0|!T&3z7>8%)DUDn^eL}$HJ|hchkEpCGj1>0 zgx`uKcbZ>jbXSDgVu~DEAW1~G#I*o~h3RSS=M1YIG7%$6S2=QN)J^w9DkyX+IMghd z&jh-G96!-F#6%Xo{wiNPo^+A7Y%M4IA>ct@k?&9T3u;{%QlQkOi(Bo>=wyd^$p_ML zwIrZDZ%AOKp2*8>2!agE2YHQRZ&{N!;nNs3kUs+(ExK!>HBszIH)!MQx7nT4I?M(v z!l}?D_&8Cs*^5-@8kJ)whlGoL&w1i|wuGr$ZBSz;*pnPy*$y=OpWx@AtfU18g@Bn4 ztBOlOhSYy$L}E6Qv>yq+1i&>0(gF3%FgD9-PekM`arv|^O-5v&30}oD`|^kFR-^2o zZgG3iVMNIA|A#?o@g$r@jv?x>7jbt9>=zlggAuYIo3AZQNGJQpnM4O=TeU&w8=?9z zmsO*b$l`f`sy0+Uc#(Vcj2`|UfuefZGC}r37jg%(0Y9WK&D>Wy-_ifYSqOPVe9L(X5n zWI1J;FOL_dHe%D643?C1fw;{!@Q!BUd!+T0DD%%hKNUOJ`RE9WGh2NKyu5EJqq#>5$Xoiw!7OwH4u{o&#I-$0%*J1aMKW z40{wP&g?7Ke_>v4OT67q=R8ZCo&+mfiyZE&Yu=ItLN)r~{>h)ne46~aNze(p+apJZFm!gV;w#<+RPoRvb=+`tu-+(i zFiP0n;k>m}t;CP9poBqCtRN}ovqMkDi_jt6kKnsgn5;j*fgI)ug8&7xW2zsk{6jUD zS!l)E#h-^kG>i*jP5`MS=&?(E-}4PRK(`BC#mHoXZl;F6Xx8xVZzgtoJ^zEx8chRZ z=}k+ZR*g(a&EzKc8hoN|^;Pu#-h~Gs0_}1>I^at7tgIu5xs1k&g0hAcC=}F`+T=z+ z42mpN40yyX9adW5lMXoyMm(R zBe>GvyAetOn4a`igWFmv?Jh^er?y=xczse}*tq>wXg_#z{kfz$XaT8y()a02FnNT* ziFnKLuW4i#)*Z|uIWc)89>X%u2SV=|jdq7SZ*vX^{;r=0a-hI;vv#sxz(xnY8aSUw z?gA|Xb*C=b?76fYHdKt_Pd&;M(PI4?3&2)>R9!ec7XRyjcPFJk0h7aFAocFENN8;X**lt%v%w!rblS ze=~ozw;)H@&jX#Bhdw>>XH!-ApJXV3xyY93w@^t)psoi`{Nk!Gio)iCim1VCT&~%a z?fE_}i>lwTUT-O#FmCc5E$uBqw3XaSWYW(~_GMU5cb2Uje~LP;)pjpPyERL^4H-m4 zPwx|QGi8%oW%culXqlCkC6oMh$^A!d0$gEvkZoXy#kSiDqm|8M>Eqm1@qtOMH~;nq zVSaxO7AEYB-hvMxfidwx)+9h%O1F}9llFEY#(ri#ZuP#(>(p@{#WY1Y@n$lp*y2|9 zphiN^AiZ#|bM&C+>LwrJb+!oOVG%kYyS=u2*%JD%(Z*wcf`DBOA_^fV;z!Kkgf?_l zVjs#vs(hvN%=UWn(~S2{rZZsy%&me^)3ooE9a5A_W|J30xna({gj0*7OY(J*!;_3F0pboHQ|0AC*Q9--C&JLi}uMNln zqp2sx#j@el31VX8$b-yGdHo5}oaiJ>>m>jhCU9QlUee#kLa`$S6@$d%WrXlbq2aZK z`3*!Z3-E4$y+G~3lY)=Q@rIVh&Q@(%jgmM+|c;0kdbm+MuL->uv1;Wn16N6 zZDL8VCFh8hKk=kj>k>JR`qt9iK-|n1d>#%%YJmt{)Gkn$**EKCip;_80lO)_k%QZX z{9H@=?M%td`6xo+NjgPg{c5rccN`%A(fwqgj6Zhar&gNcpwaRHECHvdX`=wJq9`UZ zEVX;-3Cx|riSxYjAbWpS0vnp^&>CUbrtc&8JZo_T17=Gh9!4U}W&tx^+S?kH3SWll z^VP}N$M>AF8AE@H*viKN+DsH;X7(Y2y0~~4Ma&T&Cy2J^95EoUP8x&y(PJD7N(N>c z4g!%j+|I=ucqsY>N5AG0I{i=NepAy5Dam)t1SKX>;Jdkm3R_CRP5zB)TPciLDcQ2t z4ZAPsQ1#i0m2VTj@ts@RG|lU@$$yR?`@-begH!CW^?bbBj)3%^4R4&7CsQa_{|;eF zhrp;y=4V^vL=V-QhuAChUF}2h&a|?9lDDa?bta`PMp|49N%u>9w#VRbqMYRBK)w(H zlivFP(jST~%v6hck3A$hhvr|gEp58Aa!bJRV8P*BywHK4qw6PmSaQi&>-g{!L4x7s zU5(N;H>}HgeL6$KOF|6M5XzYbBevFDk)?f#bdPkD4AK|7oDn$m_0ExAt#!^jE7UH& zS^nEvd59kF1#Vxbfr3SCMZ#*!Le2$K@730oUY8j|W<;M93N?BC>YzOnNWzlO5kJqr zsJNRGz}7TiNI>RtwENlQixli1*&O3u=wm^HpxuHm&pW}1TQnBC;pM+U-%Ao2Q2?kw zmBlhUIIjWkA%s*;B9L%k$Eue6sewdazU7~o><-MWb{TNOh$hRFwJG6w~4 z!}wGu*3prK{ROZ+2WI||J`QyqteG88Jp`tJ_faHQI|?5zW|f=L0uGR^b)4OkZfNCj zI=pM=L2V{c)nO`#nC%*U=#N&6Yam=srCG7g>Rm+VK?)PL)Lpy-mC&^kpobnVeJS2w z0eGk+Ds1v}4GaS%L)w~@j@(iHTs=I{(NL^oSi*Jaxg8j^Zl4!}7=aI5!7}fFF3 zWsnZas=9_#-rzmJw4e~w^&vbV(A`=J+Z;%k4$)nv&L~2o9hI_Jx?f`nf_V;%0%$g9gFzc&&0`?cot9Ce^+1|llBw@@_lSQ?_zsC}=W4L>5 z)Bch?aj>*6$PU&DWQJiIX72Tb$nW@zNGOz`_Ry4TtZu%_N|HrUH(WjoUru(Fe zyTYY6LT63K*-#B=PE4zt(V$yBpA~R^Dq-V4_9Ghe0Cqyb{~b9&kL#`8n!@kOADH7= z)Q!MC6ZIpqa^m-TM4u3Het3gqCR1TZNGtV2vkxTg)P=oFkoavsl(QZL@I3*Q9i^7& z#zNr&9v@B7Lif=s;e(dpWkAq4<@j9iONj27c-v5-gNf!l3g$a%290hT3yZgk5N{OR zg>}5-$ou|1$*EbRpi_^;-K|NUer|e=Lxe^ae+Xmy>&ZaJL2oD0dLAzPCS%D!!1T3f z|HN?EzG*0cUEP<^PcSUVy9-e%`c#!4p$!5EB@5xU9&7%PTCSP+ADC=VHLiAnA%9z? z97NAhMG&!%HuQOJd;Vz`C4We4J_GG3J>E;pj*&g$G}Q_mXydb<0on z2y49c?SqFk&mVOMQC7#rNH*3Nlhh-^Bf}!b`@Fz|;jHTqR=-PI!Ep~@0=3ny2(go{PdJj9sb*RrbM zYZK(fp(0^yR~Aoi{Ce>d8$QLvNdgx(tkP<`^5jD25xI|Q)j}^#YZcG`!_-^GHTl2q z!<2%85(=n*q#!v21nH1YrF*0_6A(rZM5P-fCFFCdKzQyTv{r||Q&QaxIsYoaQavq7gYD;484HQ1VG;a{ARY#wv%tB|7uB=E&)(`7o5YR&9g}=4l58{%!B$p+ z#J-Ty8|LA_l>_SP1e19tGh{1#9<6aMdou=J9@3fwTzn{5Jn1bk zAvym2j>12zlLP-Iw(Q`|Pidu>nxpG8Uaq5yVJTw{!~^X z`eZ14a>6h-p{>~7kH7R2Xe4P!uYD_h$N61g+p8B4COoa+4p|Bxam;8dYQOY*Dc97= z^E9|sPIo&tL+iXizAL+X{_Eu3J$AE?)WD%6AxOFUcm{U1`KCsy0CYFJfzr=gzHsLq z$qc16dCyIaXo-Vvk!0~T93(!u|B#Qj8_!RLChi37bme#?0a(OMZeBNBt~hm8uk-DY zB4POu-28#dY(;xRo&v^#F~+cU!XvYupYFgaM!>WRuWLyoNGqkLZq zCbv{xqqt`Jmi+3s`1kx*CUIxEeA}61fU&H@43BCxqU+mw=ROTj9Y^jqRJgFI5s6ib z#VW?rwfGRf=pxRPUS(4)#{V>p?J=}j6}&N_{N_;e6I^H!O*lVQ?Ttxc?FFhIL=NSD zpV%s&*iO{T@YVETm3=}ULWB*LWyyTVy>%PzYNIlzUGAj6r)VRc&kxu&SP=1srEg$C zvj3IMNn?yee#x2omTNUt<({v!qeKYE4)1?XrkYe*7A-oQT;%#XK)Tyu-1&k;?)g}@ zYPta5YjDCgX~n(FgbJ~~mwOU!NXDDEBjzpOw0mLV^{hYxc94DG_#+<6uuvPFZ)1X{ zdJpAaSH1ZPiZfSWa35V9o;uu$hCu$^ z=$jo)@xqI|nDV(WS+a4Rqjy=k(scKQS(oSB{?@>UI&ps19eypZC;M9>8aOn-*&Y0H?pmp^6|T(?(1G4GmcaCSG2G-k)>fQ;&GCn3SsD`g z6)hs%u!rYVLe zLwrjoARZ)}(PMy;>|MtgyLx^;G(Wo%!Cg@( zQ8ElmiX_M61kdiun=Ez%^^mS_h6a-^%#2qQCsiPO;?a)p^w&ZEUf&22Elt(zP+X$! zZ9!D#?CIFMAc2zBba5X+15;B$icF0f)#w^K$56c%OYK(8@`W{2PH~>ytN88Q=IC#b zPkM8oSWcOkc&Ug8il4KXXG*N;Z(e4pZVpIe0dtWwNa+=%$Z}Lc1`3=$a;?FoGr#Zr zEX0K28k^%1n4SAzuK$_Lb(DcBbMoEMhW)dL5F@MG8GE%9(WOJsQPPXQ*YW%V>BF~m zwa-6$^)+dpUE$N!a`b<#OcP+AE{!Z>lI}|@Q{P>N4~XJxIe!%QN{Uz7;XWtx+&2{3 z?l#6I6o!;eQt@#I?^mJ+NHY@!CpA3``nf;Fb=uVISzyvhfnKk+h^f^6ZA2&$EpgQ> z@dY8l4B)`?6NNO5ZU(@(F-GjHpLt+^->|x=sra$h`}8o)>fZrrvRJWNcZPFcaO2}% z)`)AG&M7d*fO?PMscU+i)S38rG{+5Ylcxj^L742WsCmETi+>fb*!!Ahn^J9^IW#Nk z*KJdMu{UxulD~9`=GQw;+-1(3v;-dV>f2arW~WTtlyEvQTu+uP2R4h_BPmT?gLxGX z(Ts>z4W6*Sk{Gjr`)eYsb|yIjleMu<>?5OjcJIHfY-z{>A+J}$2PPw3$#>y-=gkdA zlpC7TOqIKiydBq!t|n@qJt=*Z=BYzLTqSAYZjlq~ge#bn;V6Cip?_A*g8UhK)vO94 zNM_$n#56;{`$w9KA`+i8ttu$*idU!fE!}jUVW~1D^c96mW=agBgidwU6B`K~-w;jW z=ofcUNKM@ruN2$aP>P6i{CkYOo>4?3__$b&fj1&4yS2~m^Km2?-Fr+S6_2MLO7JeQ6m8q zf~2Eo1^Xd92>1dM9tLB3C%^W_gWp^^J7|lyE^;+Zh{~_}-*^>_IPCR`S7)$08 zJ6U*d39xr1JB~x^;l;4z=2qhoqx+u1i}^anFZMD*sr}QgrswvGl`2YmKm_bSN1BIv z!9Wwj#w)Z$NfTr=^=4H3a_NTW5lj9?=r_JE3vYt>sFhMi zm65YY({Xi&xuda=Gq|Hhw?DSm40=x`jZBz&j1?KwNOEjdUKqtaJZd0%4spF|Q8mGSf ztKv=Sgr{GD0KuU|T(bwg3Qe7Q?OiDy6`?jTD$iOLxGtE7UQ&2M{)_;xg{9FxJaBXJ z6uew4oyYgwW%E@)K{e^~GkbLW$FI3td@+(14>my`N|stTBJ|~DAhpUbq-+;F&;e26 z$n~%(bRNx$kzA_3R;(%7ogC$}5S`K9%|N1w4%QfDX_#qII;;y$nIg^<%Y7Tv>@M7| zY-k@cc3f1szB7KXG2W9E25|XNJikcY+bqXgyhE8i2TxIK;`=DBlo~X`bV>0&s~!OJ z=aSlcNIv|B{-dWI-BNtTR!*L9_~6cZYXuCs^j-)%!kqG-1tBBnCHNr&zr@x50MDE` ztq~c~S3b3QO(fMSO!e&@y=jQVChasjM*B?PgtSo#Nw`* zVSS$lWc#sI^uYaqnB)bTp$=4OvnzBKMEH1)Ug@{J0|NrbemEBfh<-iAY3MCD(<9wy zIy>i;@5feGxV1)=cTVtNmYD=l7j)4a(psOWLOsMkV8P67f*P@bRo4Tb=NkRDA2@-5 z6h3VfUPw$))SXP99Nl;X8Lpz3&yt(jhea?2CZ#-$)PVFp^v~z5B2htZADaO}4WP(z z*L@P#_L%h~hHLCp|QjdY%o6l8yuQ` z+}TO96esD*TGIur(-l9@;iz!WuK4f4s*%+Tnp!_{)qTGSHFV8ivnLMX-w@(FTg;ga zvfBoG8G#t{WG%P+P42h_*qESKox#MybWzd^s6>5<7 zk@58=G2l0?3O42R&&?PkB8iv_7x0%Yz6*;&z7(N;)A4~U;LGS9{va(T-cX}}#~od; z-_C+UBu`L(ucQR>+jP=pzLRiAjoNv?d57cDNB!du{`P^2B!d#?oK4i`dqf+`UwaL# z-vjGn9#i^i#B#aZ#XzBr06z^;n8cc6!txy??;G`>Fw6qpaqjEv%rX@Gr_lnR`#|6u zyY_$0NXL$BXzG#HT#e7S29H@XJ^X36kL1OhvcI2};7H&FP2J9j9NZ|n`b#BG?-c3P zwp8{Xx32i1AK`xa+vGt_;WFzPaB2Hx%ZFEfMF}X*0HS8O`0R(0ma5 zmi#o4m9K>KI0u%8o9~NmN~H_Ze`@ec-`shzGf=zW2ce8Q3H-GO{oKaS!j2_j_KN@=d4N7YFe8ZPiDz<3+l7DZ{yAeUX_;|Q zcLp!RU}0j{*d?{P4tk*^ zZIOvyNf2Z&<%e90!0A*TaHDA3=d%(D84EeMpjROgJ|g-snm)6!n%q#e=K_!-y*?;P z&V5OR4-RtNNu>w`w&xz<=;D%`CauKVtLQw1Rp(X0sa{~6$C!g#@~2&MoedlHs@gr#i% z?jGnLvV0)(p`pGZQmk1RrWkQ4GQ*ixL#|EqNkEOD!^*>B<}ugu4c1jGWplqw!E@Oe zy6?J191Lq?y*lIZeTlJt_IZui(1wh$n9bahs$cx_N&QNVbU<6ILTZSV0s*4vxCGgI zb72?14c0pU4iDb>%^Wb!$HZ$+Bv2=q09x>i*>pRKCyt`TOJH=2OeV2)P|aJP&3A=p zP@H{C{_&7cG@g~s=GBMa?Q<&$dvWQLFOf*@zg)`=AKF???OLx;%gUkN;$^WOW*E4P zE9O+IPV%*N-3tN}?i{7nk8MdhF{_K~9|m*Ee;jYmPWGJUt!$E!a0|?^3_U8ut4`cKdsBL1d*@81tkXEDu|>Mv%$7K}vCfWdb7 zc2;Xb#;PW?c>B@P*5;ZUfmWl#!>`=haiXyEzW6nO!PyULh4qatuqw&<_aR7-|DOh> zBQT*5ci<1yi{f>gt!IZ=5_403`=UK5l-d_fsR_cz;yM;x~L@p=1N zVZQG7-ar2G!X-<_<$hkJajow`708S+DI8+B$t<2v@Ear`L6;|E(Em=h*jq!%Az!?i zp}-%MUqFrPRcOR?=^t(g^$!>QAlt{=l3yz4F3w~3zNN>}27Lx@yXrnOKO@J;W8>lf z1cVyq0_Eug>0=5ZMehMir@Yu|fzrE}k)7ea$-;QIoza%^xxd-LObac>8Samh6jABk zSI+E^XJq|_!jZED^`Hsg!g?6frIYQ6PSS%$5s0sRs$RwW^{PHVrXh8hC`3*S#l?R; z%z|dZ1n%~U;1=3?%VmXxyIdL~S|vk1{7NEy6T-^$L7RX9fu%)%3<@5#Y;YHRjpmNs zSaf*ti++tLSYrHztx~*~(jF-vQqTctveG|-?Mawl1C zwoW#OjO3KL!%f_E6KS_JR;jP4iPz?EwjoOeROo>VqLWUgGVS#GAItUF3xx~3*em$R$d}NdZlI;NQ``-7`wiC)w*3Z@;>F#_$Rm=KIX; zUJWVQ%?al9X*2ZVAN>#4o-6`Cu#@-r?1>J*4Y@!jN8#RW+=7F9>&9N6PB9vio@$uy zK?;vjgrlhcgK)D}^4+Ty$~QjB^S7_)Bn4LHkJCg$to4)A9U9hsY@mp(wbZ2dUsY@p zYaB^ezC3KFTO;Y77~V^wvx?u{6V?cIIX_QdkO<#4H{KK1jRDO+@5QBZwnB7niW3k{ z7n;vU3^wK3+f?mSr6P(cC%-{)pF>bGI6AXZXH6Np_yfVK`~Z3-Gwk8yFvZNS25tsd z?J^}GSLC@3X1;#O|=AX-~K-3i2Vii4JYsNG-1_rm_a4mY@MORcHs9fhwFX=^xS!g4lgDkS|$-a)p;j| zOW2WkwSL!INdRX$)}!5jd2?(4cn^0&iphv80txwpiJ&5Pu+01LVJFz=Zw8rgxH0dJFf|jI+6W2GTqY^al4~F^3@~XsdU#K&wb-+ScO+Ua?`juC66>x@>lSCt+jVC zv1r%#3c8M{RX+FfXdd25M@DY`KgR8dn_NA~Ircb)iAaxNg}__M&w3I~DQ<>vCA=Tk>pStnjxBsS-Z4_BBF zEpOb`(rhxng*e8*MWNS?=WnPkU({(6iO21?;_7MF1bHKzS9X(51$$lBMq)ukPALK<7TeX%P`;yv8+|NcB=QlDejFzvU8<-M;a@q-jTww==T|$pb1*7Q*A1P}1pAISr zl8qs1(%5=8T|B~1#=UaB@#)TaP{0Zd*4E%SjO4qYJMJ%~G35xv_sCBE{ay@FMJQg8*|I|+cnEsM?V?7f0Qf9FRFE$ zKA(5-1R&XVGJIT>`m`cycoIa zgdDW*xjO{nm*w}lrJ{sZ}t0LG3bZ;=d>o#~d?QM^wElapV3*Lfu*a~hd#gIN4(D_V8udf|#NA1>xIW|)@ypJE z+~*@rfP5&+OB=eSuXkq0BWj>#Cn4u7X-%ha5R(N?QUHqHdjvl`!(0pgrc787THBW# ztH%mt+T`_SAK&kOsYy2A_tCJCQ(eyU+64wVFXe>~}}>A$8M zw}Sj>LFt(}aq?G1XX$Y(%1uU1hv~8minohWM5-u5>S+g_S8HxMp&>;952>k0k?5Gmvb7H1r_n3qQ zHdS*erpj6MK0Yu=a3~!umNN9*OrSRs+NnSRr$hEb&d!pHeL z)AQYf8ao6e%`pwN2oO(SnTLVD{Nv*O+eLMv-Rbh!IeFKDN_GnaS4dli?`%Q)j@_^} z;x19bHr3Snu1fuZdMX`3wD|O!>q--b{Gyci_;hb-Ra#R5?PUs+l~xAGz&1&%Gv}qO z|Eu$7cEt)$y6_3E8acZ+0+?%UF3r+E1#*)^{eT~8Sc4X#lP}y_KRN|U?OnY;Oc^S{ z%^%}CGWC(1$N1 z5{6|4HR5pyN8gLpgfNsnz@i<23YDmA+|#qCgGc9;yt=G>sug}2>@UX;1@(V{N|`H6 zuG8pl!QaoRvhRcY-lnuj?J`Df9=?0Dr?S}hI4ir0_XbHuUd+nzJM!`P zgOcOy-}372@m?P@m~X2)Dv`1c9L7GSM{LK}W_MR}%jS#k4Z-wcHPsShLx*Y{I*Z#SeDV4FixIie}YxU}_vCOA_UJ5?JZH+MI+`X_09_J!$MdDS!zFjcyp zF%+XS&a9WvE4txaJ?gb?jM8QE)KL-^N^yreY_RMXh1&HQQCCHSv|U@Zlw)u6AG!?J zxwIi$MqV-&NpXCWLpTTO+$~;C`Q9qe{lU;xhr=}NfSL=ak1wJd*5>(Ud0!~w8P9*d zqAY<2^Qr_pe$3o)RQ(~3$`Mv*-3AqPjB5Sz4`QR5JLg#72~le%WT+R%A8#C4 z!^A@F{vA&x$)7ZtjUJaYP$unLbxkE<#qjEk^N#Tkl;{z*(|K*}LA_L=7*6)^ke-{u zLpb>%Rc#C+;d$rZKQ_QK??ggm{;(?%v7Y9qQGfrC>|_(VH8`67k4%!A0roSyAr;l=q=SqWxK`gs)$D zM1PCPIRfhhoDI-JMi(c99xL-V{~x$^tdV{0_J2l!=D8-DHD^3Ue%C=vt4LYjrDBKX zuq9%4o^qAI!GC!4Tc+*6lXQw!?@o5!<+GJam=Oh*lWT&Y$b@tDXx|8M-&2`Y4IZ91 z%#DBY8)}G;gOKFy4ca2te06@5Tx6JlbWu*(fGly|lBV-Bls(>PV zl$yP#x5tG_jFhZTHR7z!ooDqdgq{}o;kG$9Uf7SKqwu@XbaA8DkG?&5aeEwc-mQ8Kg5C{$hwU;B@4ouKOM{Z?2x;4%y8}G*F$5ff zyA)6%g?9`sI*8dGb%r-AZ!tZF`&LF+mS6p0vsY$7HoMkLLL0sU=3PCs>gj73J{Pw{{o^$X?OW=h!#3$yePr%8=j z;>;gRKg1$(AG{NW_nZ3|m^}B`G5PLt*HTXC*;nsgW*$oqer9%INw33@N~X^8!E(V@ zKFl%(evfh`w>~n!h2?^|ymy?Hs=hK+)K0W9TL z?#u;pehg68%uIg3xT90Sn&DpYjgBW4sSDd!XMUUY$c znSu44bY*p=%Z_bSm=r^K_eKck6kSb=-Pj+P%Kqtw-K7EK+ zYsfr#A=Q1xx{rx=v^%DRB=UapI?F8AOxP-NH7v@D;i~9}UcS1|jpXOw?BiJCS~j|4 zHk`l(y*pT*wtSiMU?-Magrb1Qj4U}`1DEwi{MXw+qL)4F6;b*Z|A8{E zD}lGytWm*?NA*sv=U}v=)7{3yiyR^~U~VHmyLpOZ(eW+Y{+FM5Khcl3cCrJzX_)Pp zRu$Ww@9~tLf!W{!*=^nR&p*x*cQys$^t&LhTI6|kAOE1?UCyhMm*DZ(Rm%M_n81eEx+w`-3 zgl=3l{Yvs9o4D4)wAatRiuKQdf9mMZu}QlL&9T7pJC7EB)=z^2$AYR`25-Eaf`Ef6Ikl-7=lCMfL>}R#ofpuZn zbISNol=BMH#Rdnhee!WY_a#^>{^_50m{OsIIh2W~G zqe_Ul9T&h}z~;9-(nss3hpMquvP!o1Le~i!L`0%i) zR)(v;^O@X9x>OSv^uA~Kp8-WIm%aQz#M^`r=ywm2*afV{R}@ zCYE*GA_MTI z!n*bL=OrafOs}Fh5biCjkwX8=a5<9g9^aD;fLA)&jD`$jLVns{evQC5sw;Ue-Xsgm zTP6BAV`0MG()dKXSwy6J(F?2XN&YxY1js(wg z_SGf!ZdJ-;Ro}fy2fQqh3PNxORH#_rIbfYMW~`G&dDodW8FDH|z)FrAzpWBSkC4mk z<|APmErMfHb04iCWFfupyyX~-py^Z4TO;}1>t8|~G)k9Yx-Bq~m)P5N{on1f_Vies zhC5U)7guOIL?V&t$|=tIc8Dgo`A$I3;Q>ni&Hae~B3@<%GkA!fC?2xDrZBJMZgxWc z%q1PFW(6r&9_>Gxv{J!qhG74zyA%$!wzBK{#)M}X5ukJ~KA@0Nx$}i1lDnhu`U?Jl zbRe4eM9rH2nSXZb;;fxt+*#S7*gE!+zCK*5^nm=rYrc2kf5|JI1Ct;d^M0+8bfn#$ zl^$w3PUBf0{hBLe>gaBC{_IAh{WD|R5{UMV@qf`JmTydoXQ=@{|E-t;fnp=@k1g_!0`OLBD z0CeLYw_=HIo}_X)T$#@E-*A|K!k#vl~rG$d4x8eN-4W1FnYTVu3>- z`u2OfmSTL1UEHnBvDd*3{-v5kR#67(4dq&Pq)*43%DI91(sMtk$n8#E~ ztjJM4>aYm@FGjDG^1mo@={?zq#5o@Z+pAx`nCK-}vmwCyvm;hM;j1-28_xK5IGO{U zzNlPFiKpWPMD9zf3}XG4T5a`e`L1#gKyjNhD_%}xz=~OEv8DzO)TIzLT&|4qK}8uX z&MKXsLNnEN?j{@kOkl5j1O8_%%E(@mRE_3x*xmX$Om7lS-(CNbFs7&45y`|JX`RR^ zgySo;Y$HeHL?c=R^K0b_r!>yW{UemvyIvXjQJ||J<#1RKk~n9Uh;G+M);_tUXm7Px|Oty zVocT%?&ystCjT93M;_A$&-UzSU~_f6Z{@>5U2pnHU2l-&$e^Z#v$FMF={fec32$v} zx@@x*EYssH6ZtjFts`ugW9FUc^R7t}q)>(9-=wp%>Va2D7XrGjq}D69>7%TXqLpmt zARkEFNTyPG7AH*yI*fPmyboE1qYgbQsHPZzgiM(Oqu`qrk>>r!W8Ok zGI0Yg=3Ckv*ckkvio|vusO*Z$g)F##_!BiTuTCT^8X|7AH!XYi$M40?_WLt~FVP4Y zqfp`#cMw3%%>bQwYdE3bR(vhKWpz6a-gV3W!TW>N@5E`~Z@6Sk!b{gd+xfw|yfaZ~ zPH=rQXM+oFo5|-3-x`DA_8ZjUzHa%7XYr2I;Y%z$9ENoNlU8P6`k+Wq>$3PI`H5X~ z5yc%}aNczxmdSx-sY-FRBf}cs-*FBiaC1WjzY+}%{pDZLrB_V90@N47qir-QqN~-t zW2DJY0l44la;~o^4W79S6`S`p&EURjFbxziqIet;>#K25D3>y7CLj5J>&G0xb}L5l z$i(OMMWv!ky~hw`)klr$bf@@*Xq{vms<`Bxc1d>0bLBW4!FW`@r1Bs&RIL;SeWj$4 zu2MZs(^8$v4d_ig1v6IPMYan!z#2_3lb6aHJ_03su&?Ogy-kifG^FJ4z@NhzIQt;o zmij+v4*T9QMUM8p+zV=`K;I?eCt@xSH!15UCdD}qMNi*Lbi`C9Za4hKp$UG5;l{#_ zbwxtjPuWZzMDE~i%<1t{aROJP%W;X|_IQ{-JfgA6qBS#@zCqz2im7CeHgv_1r1sas z?Ni0`$g$GD*z!yPe&7$P-btZigSm)ucwUsGI;*$~MAIJuu>0o9TKh4?bZ7G71Sv`BGk3%`4+#U~pGnpB>IC~jvMDo9a4eK*pcj{bR z+*n`lk9V1p{;vE(JSBk3E+!B9B<)KKs$*mWq%EK9rEe9@tmH5db#_7+x1C#k*Q$8e z^l{75aPqkzR%VHFfreJFF*oe-c^M=4qhId#7n%-_e3Jz-35BqUO1aqWTr69inF6KT zrZJ?0Pm#tSx!{pg@cBmGZLdrDW`5f>t{kR55l^bz)(d`Bt1KCZa&&5_&4>{C35ZsB z9!1|%A*?@Na(B>^zkrF9NBEhD(`~NSSE3`ZA85Mr^nEYky|APIi~l|l5HM98YlgE; zCS*+Sykij--qS%y7NC#GV?9-p%-&ah`XJpmw8+GbP3=0wtpk(7&h8aEL*IwWj|eer z;%5glJUq92n^)-+3Fl4pn|A$`O0R=3(s{oDQa*RbcE_&$*q6BUTDqJYv;*nM?_Pe2 z;y|{o>Bs^v1uZglux*d>@jUPLeD~JCERhGm353sG!*I5Zgr7Gmn?>ABn&8e+(|gEG zY2%1SY42uIX=7#xwUq05=f>0Sdgb&q88qXI&^nO}tAc#XyuQRb(!$P31 z@2v`^m%K~ve$-KvpIverq38J{#piaKBx&5+|2C3ysLfre(9xC=7Lqb_pciDx}fCYQOO@3WDhVB zlyA4x4=H?B`%6R()0}G^iV6zp1us!3y<4w1Zj*@)eQ|auMl^n+iS4qQ{nh-Sdtn^F z&KCoas60@PQ%cFK7P;*jWf^#B0kPhv9$PH3g507GmD^VOC6>VaqaYwszj+!g_Qvf0 z{IjPIu?jMT`ss1o=Ybd)wp&oQ=2%;DcO&ja_28`=zG_KfQNp%pe#L0u;H?vM@b&@u zL*04FWi6I_=h`eXuwr|LYiVnG@b)^^xmCQ(wPR$krQnvgBdiZxb$j_!K+;x^Yj>Dt zR>^i+uGO9~#;KAuvOMwUcc^{HT+$C!xWTkU>g2G zv63LSeJ9+uNKqy4JLb4C6*=H0)MckGkHrGmex<2-*L%GG$Kou8f3h_oV})G^2-Wg) zubJ?alL=^t_3qo;OuE|LvcWLF%JH9OMeh9HLkl7L?V>HvC9`@ve*xrhj>=r=uO`-< zzhgY*sh{*Qh=(XNgJUQB6x|}Bi#!c; z)kri$fVhnfcxQKG3w@9=pKb!j;}=&LJ@u11{(Et8fLtlG@kT8|VQ9?C^`E~=GA4&X z5*scek6 zy|+X1ZjVb+csHs7sbA1>#^F4Okt!t1`VAV3HMKWL8k>U5-UA=_XnN_Ni32w!@gBKo z1vRe;;m1xyZYhQi-TM4q2flWhCv{S@-F(O4q#~C%@*Y$#Jd+s33`cONhx4GH8-q$! zyj@Hsn17Gvm&{yzFS{Ppkb^YI-D~5U$?~inOHwJXX-JiXwky8pM$`d*>SI!0xvV~+ zSi~vhTk_L=OAqr62Ef&vCqNU1f~iEksvQ{rE(!hfpt4f??|Q^-b>4;j13P}%pgRId z_up5efOIM;(!B#yG5+;3>|_(l>s@OCh0wi&ZOE^y6avKn0>#xAcux_t48?a38z+iE z>)?ms&2V~3!XwmAdTR&-g-+2x&6nvgDWKM>LkR=+EZz+NMm-p?!sx!|?pFCijL4we(>u>3!lN zm#mrpWAwV9duRk~Iou2k4QxUW_4w~C{!)M#Hov@OInk}O)n017##-v+hR@7d%gh@)#^-+qI0ZjV_#i3!Oir06XLTYXDF3Z5 zYx2Q|IiWvnI6P=T7ESX_i;|^ak)-g*nX>qWU1Wx`OzTl!fNJw81}zk~^sN_dHr*6*sB9y9vcjn-uLtGtl}gwot7Kg@ zjfcGAfV%*{eJ7B4qW{;TQdAp!<4M`MvVVx2oZed&-6@CuxVIuN)yhbOytKG1Bm0wc zzOzi~|Kb7&Vr7WQpr-|4OkLJ~fXbH-!*4A(M1eO4YJq$zsrSduD+-n~ecw4BcL@jV z9Sq)ZedhnS9EQLJimcz2+@mQ+kHClSog2u9;dy7Uu4Um7DAUpfcjI28Sm@@eQW z0a81867Zn=)~aDz*wfT8M<*N@SnFJXHL<675d5+Hy1ifFMBLADm+<$!tat@t+C0|d z975u&oSufC!HTwD0nWZ?@=$uu`_4#dKhQ;)CpGX%d^<-qxzM49WP}$&@fY5KpD#>H zA0pRUdK?Pgq6_`g`4Wb1ylZ#fXh(yk+vG%>uV@abq(FQ&rsCph8Vr8RUE$HF`^UB@ zkvCANp?7=p_q_vWoN!P)){@{n;F1sM^nb&r*4SRTh`QIDKa@1lTXv3@gu&hYYspJ# zp=q`8aKX4OV95XRM+Er&(kfq7n{u&^?svcO%Y`1dy3b(c@hU3(lWQI{#|7irbc#k2 zM*aHf=d??vEDMyk+n)Glc;9S!j>YAL()tnPbyXzV7wl!(gOT#0nwSiIh*l!$ ze`<`Fr8Guxwoy4*Avv8@?r{|`Uxn-Pg!w+|oK>3frM!;fdDb8wq|Nj0sQncX^zAox zqqODCs;)14+I}fBZLpES)uDOfLk#=KuCv>EN$M5DCY|QDcz>uRLg$Mjgt2?@9_A>>_H&{zS=!N}>oQ zmh0UM>_EQVK1Z8_O`b$zI1KR+8tXhmJTEY|2!_|m&e^WW3Sdrr+|x=X#&A=Q_NMVJRg}b-0gx>go{(T;MLg7{ zcYU)se`$M!s(ER(@nBa3Ug_7NUgC@kX@1a~i@S^M(+N1Fur#nLCfBjX^N}~R3SDHglG%A()6y!t65f* z<<)~J9z9jM2KdL)xQ~MuBK;5Vviu}{lWI~~H3c~-ZOcsj3d!6JG z*w0C#;&=Ht64tuQvVmuJ8{1W#8)6pxIqLdpFjckU28GHK{@BdZ70}nMzP!z!!@B!* z^`NG`am+r~sD#w0gi7gyyCHX?SK{I7D5@ag!mF-uj^p{c|xV8C#TRO zTiRf}H@{1@r07PAjkNCxNrDAUGLiIkE7$GgZeKva^aTB~dHbb|bO?l3Ua>ycHVUBQ zB_=OX{E=Vm&Vlb+O?$dDs4{NUH=o6Gu`|c7+aeE!I+BWxUnMF*Smrw*S(|8_Gv@N~ z9l}mCoZuqtHeaII>VlWpP3`RLGRD{|EtMS0ofKpXRMBOm?)H!}P=GYJ(~B&(Xq1)C z6v3KF9jj>x2o68qBAwssQlo+ah?hEXN6EQD`Ef=)%5#tT#Mh$BWs(HuDVvAEVlDfI zL8TT~x?qRNrJe@Bwd8-6%z_UEH{YDh%HHfMf3H<@eq-A=|72ZGj=X|r4_i1&suP=! z4Xl5L09PT*y~;wlH#VFRsrhxew4Fe+IbYsX!4rlJOh)A+B<%Rj+Wqv)}DK^}`9;tQxyVYI%wndKHvhP2H8jHU4wc zaoek^VnNxLDa7vM7=NTc=|fZH=n?+IT>7Tk*WY`U(3;?~t+-SZgXp=pJDnKOH9E*+ z)bOn`n(n9b164+vRlO+&huO>`GrUi}!lih0NqxckeS0rztmOW#go;S;@>(u;}+8BYI77GtSh^C;8*ZQcnb!B5+MIN8$9 zn$Unv#TLuxa?kR^N9R;eX3Vcy1dJlMo9|~oWXKNZ`d~D#oskuHvqrnY+JQo-35vDZ zuVxuA3;oSjv%Nv&acDt0?NBEZE2U9~?{(W#j6W3x+%{UA3|Zh$NhX|8bQL5DOA;ih z$FZez1`RL-r{{Q57(P!u_CxtSP6l+7ROi^IM_GaY(X4m#xe*aw)b?Miy4x8?w#}Ie=2?uc` zu^*VR#@Kh4G$~YOauLU`Ec!h8dPg=cb8$I$kN%VKA7bN6j+m5_*yR%oW#Sn{dl=7P zY@m(6JRQfGrt&$8KDj$)Z#oo`8o|Wv_%_J1X1b5x$$>cS?3w6pYxD)^OXTNbjE;t= zMj=L|t;*+?W0}wTkLSiEiwkwTQy&Cu!tnP#;x|Lv)5hr~7~SP4uv8wS17j?Ac@RmUdLE6Kh9-e!ffpxtXu7XCwcCf9XJr-#jx{ z(t+a*8)911k|k9oq5LI^*x#hGgGAvD%~m+k3=M~*gB$T^XHN$?*35g0L-7JgH!pOh}(yP=p>t0@K}ZM3uIQJl?<<2?CE8vCkD|U zzEs;}`*m@?ZY1{tjzbiURk^=@!spPI`fKBTf9hUY9I+d*RlKxVRdwUYk%htJ+nomC z-#arDw3W}KQuX$SUTcZ^Gr4UMKrRqpxd*Al&rF}%ES`o86KUeV29!*Xn-NNt;hzcw6q4glC>>>(*hmhgUecuy;B~)Eswh2pDC*!Gj3t%ao}VI8qRn-kF{g$r?84;>73?tR|McWt2P~`I|Lr_lUqFjUkB`; zP&w1|`8hQ!==g@8c+G2-`}VHBubs^FROYU(TUYIj`I7FKb9MgqvFv1zjzuHWO-}dc zS4@7^ODxw!nr%R3;TFax@4o)y{*=_NRUlyXum;Itq@1v_^kJ8+PWzrpE{JDvptkNk zPbm4)uEOAh=YE2gP?U*v7_6L|?u)KoD{M8b>%P&37-R*QVrL z-vOEi-Z{Op;09FW>wdr&NemV?WI|sMwOjWHf?|^T#&f9@S)asdh6DhLZ+{4a3$8fdCP0oZOY`2 z3+e0f{cu`;$IYbFS3zyn0hNwV&exisjaH_@xi^t)G^Pk*V;$Pc9&s6*W^?tcDAuSZ(Mu*`)9HFYq@D_-pP=2OjEfV^v?oqL(AhO zT>JaAq!fBxPZ41tk}*rF_lqmO;6P~7R7&2vv|#z6yQB}C1h4DtI9|l+T(}t9_Kmj= z!zu#0CXtB?>dy`w8~I>*z#bR{xRn^p0Mv5|6_x;u)I!2lqE7Vz(KfSo2C2wFiDleIDE2eyXM85YyoKYK~m$q&nFp}`1RT5{>oe8pR8ZU z8Qg!REWXdPUsO=LV9)FLwr@B4+PdNV&iis`a~)c)jE8;Wd6nzqFUMv_2DtN<8JUs} z>w$-qO(p&D5D6_10P~J>D)|dip(b=~(;z?dCXk0g4*ZEcxhvB)Zac9{{TuMl;bM2H z-kgH*_LqZvjue6=joddbcT}E&vwz%EQD{8*aqrAyp!99$!UJ=%vkabKQW{fh-ylEG0dr_5K!G7s0m@YWXLX>C`D(|K5u(6JGzMi}(t$P#kgtSiKwqVG`} z&{hK#Rm?Vx8M`&0g54wfx@^C`cAEacHTBgztT2s+*G2#QDYi~LB48e;Ba?hWDy_Lg zQKdY0qAAbYk9~f>#B8g4te&xt+T_Wh3iN=^d@lrj%Q|O%AXNS`%<^dp-G(uox#_l)sZa9F-h_87G&2i|-wW%0ISv%YMX z1MzCJx8pGD^|JxA9=1sg&R1{93<`>wZe1U%5Iz!|)n?axa(-x60P1h}V)s3+rjPTa z?}sP-A8*Y6q$}TYDOI&i+mST5mubfq{uy31CDCGw*abl3=;w# zM-vY#B~kUCzds+rRRL|r0>2YB<`xmP6nZpNX&EWy&d;j-iii>qr$;l@IGQID>vMl& zg<2ZR`>O*jCQj@ZST{|e@MmzxS(ED{>!&}N;LKjQ`6qsyK%S8ZM+O^^|6q5 z{kY>mbB>UkZ7P3Y^&I}|WB)d3%B3)04KdW&9e%=HX5M==IyuLHc|fYSfA9WY_#f|0 zpnpc1ToKYa>tM&4a`_?9t*14N=I6$lC%H39D;^w8LiSG}aX@|ITE5$TH$3x=aPU{Q z`q8Gy!*zwCv0vj=mXX3ugYxG&Na??}-0E=QC>*Z(dVB2D>$Q8ccRzLPE8bDx zS1jElk~#nfw7whLb;w!JTXgkrdR{K9W_mERF*7z4Lm{d5^CX_z;wTXEE}&MJ>tA9p z@r~OScr9n`Gb;Ld`JC;^Q*OQ`6UY+y;^PO10YD|yyr_%kf#ho@^?{fbKgsUj9dXpp z;?Aiqc&2`F(T#zY3Fj=-CU3+~3=N^!B2us&E;To^oV&T`fo}DAaa!=#&DPZX5@$HT%u%>7PTF0E$oLto3a6k~)O|wB$YXyf_B%WqsGdLm|sTxx-V% z7F?o5J+ITw_CvS)5Ted)T{TlvUs5puT9$i6IDp1{?%YHy6jkA~F8OH(t|95HKwC+$ zIf}~7?(c~1I+Bxxy9-}cZ8x*s77rgL%CZdyzK!`fDN@^L;v zbw%!Alp3gQYuTlj{~Yu%IB1s|&2~z;sCqVRbwmZ}7N^-;KM^2})*68PX*<%sd|)C* z+$%QV>Sj}8YMf`+hT>I{4iI>fnhV@i!2WqskNAFA`_|__vr%lI^R9+D}K zNB!X9s+?`-Oc&GG6Win}+qNX)urFa^dGcxNAD2YY%lFf<7v`(5kLO>c?0)KYl7?G6 z^8Bm1bdLeo9wzL%dol?GMNb_|-M6%kXBZw4d4B8($1`;N5vHZE@tEorO}4YCIOI5Y z0*r+KpmeyE1U^=hFF2IpiEVJRPtfZ`buN2YKnrE!rAyLJcSvcGs>3yLM!o%aH#&BaGZ@H#OKj*E z^Y1DfS;|WTvXD#f5v;YAu9a5uwt!zYHu+u5-~tf&kD!DQ6dH)@g8t!`?JV%zudj92 zaayIr7jZWG5xYgjy(xEElEB>MFb5@e%;HboPudMJ^+}ctSHI?6;dmF{+ zgb91R-dKZgNmNK6?c#EUP@L%}E)(J3$|_%Q#kpIx8jqIM-Cc#c#i=Kd;|ZPEmPu&{ zUuM8D;!$3P>UQ-xVMg;$IbjDGW1 zXIR2Zalr$o@g*ULej2=%nnv^2GB{gg)(o$9GUE83ZF$)=qo1_Qy`{Yf1Ay{Z5k5{y zBt9hLON5%J%NnaGZB8lOFPQRM=Pgz*EiMvE{~GQK3~>R-K$?&*&==Zr^cA{P5;xQ& z=8Rr1z7|gFU|-qE%eAD-&!@MLH@_UP8&Y(}*Ven4DHFC|f&HnH^(B*P-SXsmwH@>u zXA``K8-vQYY%yXouB$QQWPM@Zgm^oL_uyH{S-AOS%YC=OSLvCF?&}kfolv-8ZSuY4oUtRz zby5e6HkMh_Z?p5xuNnVxFpLiDygYx+L*)YVCpuzO@vp*x zu7{fnDo?&E!L_{8_aQLZ^{MMsuKg~weZD_#yWtQyjB7jSP#);kgf0(is;hRRpAPpv z+s8sy`eiI;SqEpKAn_~?mA|;GcTh%G>8)alS3~jt&F5a!AEUHP@5%!m%WJ#n_t_kj`yOAoH^03XV+^h2bo*L17aLRNncp-;+z)(z8yuGK9@FQ%U|Mnk z;Ll3~)XJGDV~utAZcsh8?W?-tOA8%SSD00$P8dbD?w>%dV2&pfm4RVh%W{q?l5$L; zR!mVNm0$!O+CMO)^4>XmdU*fE1Cy~S!tk!iUT(G&you+|w`t}kCDP=gV~~mkcS4NQ znC`59jZj~?Z4a%>7Hx0;Xavi+$X}0)qMr~+14?1GF+)8J!zD>rDu7I!_N9s&&OOVh z>=6e}CPI>6$U{>x8cCg=1-BSsF6p4PD?-J%D2soH-OUWAXy+ECw>W#(1wk(wR>7E1(QtU{Vzc<`B7< zDDR{A)gVtk!eLu!63H9b>5wSy>Rtt^eLhwlrpZL&fQ4rRMd4Y-LSRWJT*nVQ+(7q2 zy7SHL)mJ?d%uyLDS%M?m;n2{4QfiZ3EAF`=&f=p~IZy?7Q_LoY5H{%EZ?EAt?% zPa0Wk{dRACy?Uh`7-x;Hfrjxdl);sbYSal)@C0t#Su96S1v;M$D4%e!QjYMK z&4{a$UX&cQYMxrwWCrDEjW@Rc$>Zmf!6sC_MR7BHzDNm_as8PY!(-MgCI{-u&d=Qy zx{rxWAQ3cx`20FB*$SP{JfJqpih`W|ge4gRJ7jVQ1R5)(+A3((7j>oJIG@#h^RSZigbN9; z^dtp&LY&|Kw7|Xo5Co#clRJZ!-z-X&cdiF%jCt|*CA)vhuIu;XR>d@tp8$(ixITN&te-Y8G6^ki-d-1VUN-rpRv zo%q!J<#-eNHM)4{NZbD3H@|fbC^|CgZnA6()Ks7f6fSMz1(Y1yw}$u}`LPgoz~ITX zSV2bG0fv?=TSq9>uCwOIyl~pnR@0m~?Uu~|!z|f#pLZkZF*9)<5}|X;Yn3oL+4{%1 z?}dPa)jfO8`z3WQ|HXJ&|4GnEG~1Bs(x%c4F3|DIm28rE=4jy}Z2M9iwW7^&?4l^G zV=}eCwF{!2A6wo~#CVc){A=%@qWw~zw2 z`j@yG@PsG~^7=)FLcCLCffN|)UM$7C@wlwhpFq*<33EhBaW~O!zq)(DEdDP5+3SOJ zvF~aXgl&O>%5_=)t^0;yy4qj;Ey8_(W#2_}2D)~mb?BM!ndUSy5&(QIqOJv`sY>jE z9i-N!FKkWde`>Zux1>Oe#kK&J_)?9IHKjFmlpbyBIf&uR;398WwUF40W$kESnzL=OeZ^*zCLvvV%->p`vP{*wsfu} z#{Nm^%>1WXS_jf4s$Z*3n;#9gLxFXiq~0jLuPpaU>2*2N$XelfP$i^M{zpOfL8e&( zv8_;};s(MkMD=wd9pi^BTB|n9l^ds6@Hn*@1bs454p>8L2<5f5V5dq5rCxknIg83Qh8@?(3#>q4{l^s5sA7fGtjBeR9HXff)75|k{Pp_$U25E!pjI@q1|(pjSoCf# zFR*7w@OeNHOV--p#%nKsUeCTjA9J$?g1NZlh>u~wO`pufwWv5nqdV&xCh7<=V zro1t%UXg#M%*CKtFDK*YHxLMy3E%QcA+bH=4dnixVy+IKJvehiUdjpsDj`><;Ps-x z$N;adCpvlI2|s!wEb!WsNJK5bF)_tqgnoEc2=IuBfE4#kOsea3f-NiX<>x z9pt<=SVCvFw)vI%_Gw&V*&Dn}m#n{Y?Y37%X%SAyrmc&2;6Vna(&Qf2=sW!OI}j^Z!3Zyo&%Ql zO*SW&MegZ3M4&g8>OX203d&|+)5^X7TobI z<_&P62+7=BSo8+6vo`!U*4k~qWPEf2XBDmOKyoYj|aLxKV?J!P@=T?O6ZgsHO5Dxp9KJe@^3fwoOYUzZ#aUXBpF&>_<-EQyGw%?)6XP4FsT8Xf}{WT>8V<0az-ZlGE z&jAc219(FruR1;pur^7uJG|_~PG`RRzBxlyTFsKf+6OL(?>Pe*`K$nf>ptEm$uKtU zk~C#kYtw61g6U$64`gJmG5_&{{pxe7?JH;gV#1~8VBBf5GGVZf9KzX>gcB8K!)kdh zfr3`f`S9CQ$Z=={5;RbqXV!r^r4>Hj*<)^5RYBeTj7Am+n*&5-IHvlSQBi`-bl&ba z$rTm42>YhLgp50}K+!a)EiI3!{9^IL*+cg>fUG^_+vg92$q>xhq*WzruV4=Clu(A<1cUl{Qqr=2|m& zy(~|qc{6KvOO^b8M%JRg>fKPKgFyXm9UTg*e=E(Eo~|5wVwLaeSYzpeRHUOT*kCu* z3YXdDPOgE2z_KpgC1u4`($qmpS;Lcu{&J1YZu@0VYUdg0F5jIm9AsYpGf6Pd&+>r2 z;8oFQxdAXHumm+%&`A>Fl0eU5WP!uxeS9TZ8hgM0-Ffw)6KM9d_W$Nx+h`mc`@c=| zF)&S~)d-JTV4C{sRv^Lkj5!t&UbUAr!k&j!9fHuA5{=qY#C4ly`6zl|m@ftl-}_^; zcq*X!^R>1%$23ldiKn7Fk>~(dqYZQVm-AsGjD^5${**vGPk}ieSDH8rLXX-eNB~KG zQe1Dpi=kGeqKlG~^qM5DjInc8P9QOtk?7CY8pmc|Z63^iF5@+l_+sEtbP5vL;$#>P3h?2)k@EZ-+I$V25xj)Dr&pv_-)IOn zP#!c=;+eB~+gkV8tQ&nzB{R=-X0*+9^b}M#YW#YRr*0_$%^LwF*gYaaKI= z-D7lm(EgS1RN`Nd3r-RQrtcme!+nm7dcnn)MuB*D-t3WRoe2Mi&(&s7u0Wg(-U&-^ z8>DW)h!miI6pl__-wBPL#$SG-=UDuX>0klq)^Zeg|E=3f9ZZ$cX7UDk?vEs>60UgE z2e(#&Y|CHJYml>wBL0x_K0X<+0RMZ@bB->uzME?wto?_)>y#e$hduea<;9=<>FD2c zd7)MXj0h{-yh48D7ls3ifkV_Y6K?A9huf-=|65e|m$UFRIE)ePqTHT)|IKx!H8bgvayg9lxinH7nDqPv2unEV(QF z9k6j(887D_B$)kBO;-d1P9kW_E6EJgUs*+PP!bm#zRY{{__O~^I~xXKSmn1I8|~j) z=tg}GdCjO#g=t+WsA`=zxZB`T@phHOWcbo;Wl3CPD!D5dmr`&g)( zQxVGhI?Wb9j2lmWUHEr2m%!1ynd~(AJuZwsMld2hF*%NLZWc73HPR&(djCk$1HXFw zCQDqRgR^(WYQ5~w<4~DBSBR60AX~6&N&QO@$ng-IjK|xN-@43aDN3)wtZ(ha%-Q_! zTtUtLK6l=PiUfmpY{1CHKzyTUK#1)lCvd6LZN@Wi5b_B-&uxx<>V`l3UwMsAb|5uJ zEkyy;V?_4%wAGYYbzmJ5yZooON+;GyfRaL)SA{h75@iPwjwymH39r|ZgfIoeZu(OopF)z_jntdSv0!H;=EAv`-=0$-*fn_sL zIow|?tlG|$Rw`Vi``%A%mFb&5?xfFC@(@y_`&X(1Yu^?CtCm8JNRfvE$#2BL?pr}^ zi?`p6qE*HB{JCO}6z}gDnU;;_4FBBnVj~>nNVMTX$LRi(f5{5)5i-Z5kV*S((>Fyf zX3EtB1oNU+c%OFT3gi>IzkrUaCHNy0;vYbrA!k3*x7MEjHj;^bGJP;4v*{$zS3^o& z?x){zK4l%ps|CC#JguDU&c9y*AjRS354fyPUO>i8HNhYG+*Ms3#0mc;B&NhfPm~Q0 zY+7t(g!!M5Py-_o4C*}hhY)j+DKPh*hNz0;I^VOvg)18{27l03w5#SS@$X-B$;E&V zjm@3EA0(M)36ewXJ+M@r^OcD(gfJu%%M)Wr)#OEqs<%1)8J7&S>43N-@bY=b{hlnv z>4hTz#hT;QyIxXC=lU*{m~)%}v-7cV3`qFr8#Lsq$b`CW@^2gNWq1%XnAD{{A=s{( z6h48>O7D7rF0E`*JYslA^R6V#Agbiw+x<`e6$COqG7JCi>-!CWT_z5Rv5fyl4;Hrk z%YZ%{BtyR=%PR11G%-$E`*%ktw9bRs_-DKfpDDa8Zw65J{Jv*-Wq dMholi;b+%;xa{z=N(%6GUF+u6VhyX1{{!?kDDwaS diff --git a/mes-ui/src/assets/404_images/404_cloud.png b/mes-ui/src/assets/404_images/404_cloud.png deleted file mode 100644 index c6281d09013e0a2c5f8e699a0a6038d9480291e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4766 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 diff --git a/mes-ui/src/assets/icons/index.js b/mes-ui/src/assets/icons/index.js deleted file mode 100644 index 2c6b309..0000000 --- a/mes-ui/src/assets/icons/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import Vue from 'vue' -import SvgIcon from '@/components/SvgIcon'// svg component - -// register globally -Vue.component('svg-icon', SvgIcon) - -const req = require.context('./svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys().map(requireContext) -requireAll(req) diff --git a/mes-ui/src/assets/icons/svg/404.svg b/mes-ui/src/assets/icons/svg/404.svg deleted file mode 100644 index 6df5019..0000000 --- a/mes-ui/src/assets/icons/svg/404.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/bug.svg b/mes-ui/src/assets/icons/svg/bug.svg deleted file mode 100644 index 05a150d..0000000 --- a/mes-ui/src/assets/icons/svg/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/build.svg b/mes-ui/src/assets/icons/svg/build.svg deleted file mode 100644 index 97c4688..0000000 --- a/mes-ui/src/assets/icons/svg/build.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/button.svg b/mes-ui/src/assets/icons/svg/button.svg deleted file mode 100644 index 904fddc..0000000 --- a/mes-ui/src/assets/icons/svg/button.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/cascader.svg b/mes-ui/src/assets/icons/svg/cascader.svg deleted file mode 100644 index e256024..0000000 --- a/mes-ui/src/assets/icons/svg/cascader.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/chart.svg b/mes-ui/src/assets/icons/svg/chart.svg deleted file mode 100644 index 27728fb..0000000 --- a/mes-ui/src/assets/icons/svg/chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/checkbox.svg b/mes-ui/src/assets/icons/svg/checkbox.svg deleted file mode 100644 index 013fd3a..0000000 --- a/mes-ui/src/assets/icons/svg/checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/clipboard.svg b/mes-ui/src/assets/icons/svg/clipboard.svg deleted file mode 100644 index 90923ff..0000000 --- a/mes-ui/src/assets/icons/svg/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/code.svg b/mes-ui/src/assets/icons/svg/code.svg deleted file mode 100644 index ed4d23c..0000000 --- a/mes-ui/src/assets/icons/svg/code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/color.svg b/mes-ui/src/assets/icons/svg/color.svg deleted file mode 100644 index 44a81aa..0000000 --- a/mes-ui/src/assets/icons/svg/color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/component.svg b/mes-ui/src/assets/icons/svg/component.svg deleted file mode 100644 index 29c3458..0000000 --- a/mes-ui/src/assets/icons/svg/component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/dashboard.svg b/mes-ui/src/assets/icons/svg/dashboard.svg deleted file mode 100644 index 5317d37..0000000 --- a/mes-ui/src/assets/icons/svg/dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/date-range.svg b/mes-ui/src/assets/icons/svg/date-range.svg deleted file mode 100644 index fda571e..0000000 --- a/mes-ui/src/assets/icons/svg/date-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/date.svg b/mes-ui/src/assets/icons/svg/date.svg deleted file mode 100644 index 52dc73e..0000000 --- a/mes-ui/src/assets/icons/svg/date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/dict.svg b/mes-ui/src/assets/icons/svg/dict.svg deleted file mode 100644 index 4849377..0000000 --- a/mes-ui/src/assets/icons/svg/dict.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/documentation.svg b/mes-ui/src/assets/icons/svg/documentation.svg deleted file mode 100644 index 7043122..0000000 --- a/mes-ui/src/assets/icons/svg/documentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/download.svg b/mes-ui/src/assets/icons/svg/download.svg deleted file mode 100644 index c896951..0000000 --- a/mes-ui/src/assets/icons/svg/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/drag.svg b/mes-ui/src/assets/icons/svg/drag.svg deleted file mode 100644 index 4185d3c..0000000 --- a/mes-ui/src/assets/icons/svg/drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/druid.svg b/mes-ui/src/assets/icons/svg/druid.svg deleted file mode 100644 index a2b4b4e..0000000 --- a/mes-ui/src/assets/icons/svg/druid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/edit.svg b/mes-ui/src/assets/icons/svg/edit.svg deleted file mode 100644 index d26101f..0000000 --- a/mes-ui/src/assets/icons/svg/edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/education.svg b/mes-ui/src/assets/icons/svg/education.svg deleted file mode 100644 index 7bfb01d..0000000 --- a/mes-ui/src/assets/icons/svg/education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/email.svg b/mes-ui/src/assets/icons/svg/email.svg deleted file mode 100644 index 74d25e2..0000000 --- a/mes-ui/src/assets/icons/svg/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/example.svg b/mes-ui/src/assets/icons/svg/example.svg deleted file mode 100644 index 46f42b5..0000000 --- a/mes-ui/src/assets/icons/svg/example.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/excel.svg b/mes-ui/src/assets/icons/svg/excel.svg deleted file mode 100644 index 74d97b8..0000000 --- a/mes-ui/src/assets/icons/svg/excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/exit-fullscreen.svg b/mes-ui/src/assets/icons/svg/exit-fullscreen.svg deleted file mode 100644 index 485c128..0000000 --- a/mes-ui/src/assets/icons/svg/exit-fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/eye-open.svg b/mes-ui/src/assets/icons/svg/eye-open.svg deleted file mode 100644 index 88dcc98..0000000 --- a/mes-ui/src/assets/icons/svg/eye-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/eye.svg b/mes-ui/src/assets/icons/svg/eye.svg deleted file mode 100644 index 16ed2d8..0000000 --- a/mes-ui/src/assets/icons/svg/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/form.svg b/mes-ui/src/assets/icons/svg/form.svg deleted file mode 100644 index dcbaa18..0000000 --- a/mes-ui/src/assets/icons/svg/form.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/fullscreen.svg b/mes-ui/src/assets/icons/svg/fullscreen.svg deleted file mode 100644 index 0e86b6f..0000000 --- a/mes-ui/src/assets/icons/svg/fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/github.svg b/mes-ui/src/assets/icons/svg/github.svg deleted file mode 100644 index db0a0d4..0000000 --- a/mes-ui/src/assets/icons/svg/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/guide.svg b/mes-ui/src/assets/icons/svg/guide.svg deleted file mode 100644 index b271001..0000000 --- a/mes-ui/src/assets/icons/svg/guide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/icon.svg b/mes-ui/src/assets/icons/svg/icon.svg deleted file mode 100644 index 82be8ee..0000000 --- a/mes-ui/src/assets/icons/svg/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/input.svg b/mes-ui/src/assets/icons/svg/input.svg deleted file mode 100644 index ab91381..0000000 --- a/mes-ui/src/assets/icons/svg/input.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/international.svg b/mes-ui/src/assets/icons/svg/international.svg deleted file mode 100644 index e9b56ee..0000000 --- a/mes-ui/src/assets/icons/svg/international.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/job.svg b/mes-ui/src/assets/icons/svg/job.svg deleted file mode 100644 index 2a93a25..0000000 --- a/mes-ui/src/assets/icons/svg/job.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/language.svg b/mes-ui/src/assets/icons/svg/language.svg deleted file mode 100644 index 0082b57..0000000 --- a/mes-ui/src/assets/icons/svg/language.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/link.svg b/mes-ui/src/assets/icons/svg/link.svg deleted file mode 100644 index 48197ba..0000000 --- a/mes-ui/src/assets/icons/svg/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/list.svg b/mes-ui/src/assets/icons/svg/list.svg deleted file mode 100644 index 20259ed..0000000 --- a/mes-ui/src/assets/icons/svg/list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/lock.svg b/mes-ui/src/assets/icons/svg/lock.svg deleted file mode 100644 index 74fee54..0000000 --- a/mes-ui/src/assets/icons/svg/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/log.svg b/mes-ui/src/assets/icons/svg/log.svg deleted file mode 100644 index d879d33..0000000 --- a/mes-ui/src/assets/icons/svg/log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/logininfor.svg b/mes-ui/src/assets/icons/svg/logininfor.svg deleted file mode 100644 index 267f844..0000000 --- a/mes-ui/src/assets/icons/svg/logininfor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/message.svg b/mes-ui/src/assets/icons/svg/message.svg deleted file mode 100644 index 14ca817..0000000 --- a/mes-ui/src/assets/icons/svg/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/money.svg b/mes-ui/src/assets/icons/svg/money.svg deleted file mode 100644 index c1580de..0000000 --- a/mes-ui/src/assets/icons/svg/money.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/monitor.svg b/mes-ui/src/assets/icons/svg/monitor.svg deleted file mode 100644 index bc308cb..0000000 --- a/mes-ui/src/assets/icons/svg/monitor.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/nested.svg b/mes-ui/src/assets/icons/svg/nested.svg deleted file mode 100644 index 06713a8..0000000 --- a/mes-ui/src/assets/icons/svg/nested.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/number.svg b/mes-ui/src/assets/icons/svg/number.svg deleted file mode 100644 index ad5ce9a..0000000 --- a/mes-ui/src/assets/icons/svg/number.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/online.svg b/mes-ui/src/assets/icons/svg/online.svg deleted file mode 100644 index 330a202..0000000 --- a/mes-ui/src/assets/icons/svg/online.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/password.svg b/mes-ui/src/assets/icons/svg/password.svg deleted file mode 100644 index 6c64def..0000000 --- a/mes-ui/src/assets/icons/svg/password.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/pdf.svg b/mes-ui/src/assets/icons/svg/pdf.svg deleted file mode 100644 index 957aa0c..0000000 --- a/mes-ui/src/assets/icons/svg/pdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/people.svg b/mes-ui/src/assets/icons/svg/people.svg deleted file mode 100644 index 2bd54ae..0000000 --- a/mes-ui/src/assets/icons/svg/people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/peoples.svg b/mes-ui/src/assets/icons/svg/peoples.svg deleted file mode 100644 index aab852e..0000000 --- a/mes-ui/src/assets/icons/svg/peoples.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/phone.svg b/mes-ui/src/assets/icons/svg/phone.svg deleted file mode 100644 index ab8e8c4..0000000 --- a/mes-ui/src/assets/icons/svg/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/post.svg b/mes-ui/src/assets/icons/svg/post.svg deleted file mode 100644 index 2922c61..0000000 --- a/mes-ui/src/assets/icons/svg/post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/qq.svg b/mes-ui/src/assets/icons/svg/qq.svg deleted file mode 100644 index ee13d4e..0000000 --- a/mes-ui/src/assets/icons/svg/qq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/question.svg b/mes-ui/src/assets/icons/svg/question.svg deleted file mode 100644 index cf75bd4..0000000 --- a/mes-ui/src/assets/icons/svg/question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/radio.svg b/mes-ui/src/assets/icons/svg/radio.svg deleted file mode 100644 index 0cde345..0000000 --- a/mes-ui/src/assets/icons/svg/radio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/rate.svg b/mes-ui/src/assets/icons/svg/rate.svg deleted file mode 100644 index aa3b14d..0000000 --- a/mes-ui/src/assets/icons/svg/rate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/redis-list.svg b/mes-ui/src/assets/icons/svg/redis-list.svg deleted file mode 100644 index 98a15b2..0000000 --- a/mes-ui/src/assets/icons/svg/redis-list.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/redis.svg b/mes-ui/src/assets/icons/svg/redis.svg deleted file mode 100644 index 2f1d62d..0000000 --- a/mes-ui/src/assets/icons/svg/redis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/row.svg b/mes-ui/src/assets/icons/svg/row.svg deleted file mode 100644 index 0780992..0000000 --- a/mes-ui/src/assets/icons/svg/row.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/search.svg b/mes-ui/src/assets/icons/svg/search.svg deleted file mode 100644 index 84233dd..0000000 --- a/mes-ui/src/assets/icons/svg/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/select.svg b/mes-ui/src/assets/icons/svg/select.svg deleted file mode 100644 index d628382..0000000 --- a/mes-ui/src/assets/icons/svg/select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/server.svg b/mes-ui/src/assets/icons/svg/server.svg deleted file mode 100644 index ca37b00..0000000 --- a/mes-ui/src/assets/icons/svg/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/shopping.svg b/mes-ui/src/assets/icons/svg/shopping.svg deleted file mode 100644 index 87513e7..0000000 --- a/mes-ui/src/assets/icons/svg/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/size.svg b/mes-ui/src/assets/icons/svg/size.svg deleted file mode 100644 index ddb25b8..0000000 --- a/mes-ui/src/assets/icons/svg/size.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/skill.svg b/mes-ui/src/assets/icons/svg/skill.svg deleted file mode 100644 index a3b7312..0000000 --- a/mes-ui/src/assets/icons/svg/skill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/slider.svg b/mes-ui/src/assets/icons/svg/slider.svg deleted file mode 100644 index fbe4f39..0000000 --- a/mes-ui/src/assets/icons/svg/slider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/star.svg b/mes-ui/src/assets/icons/svg/star.svg deleted file mode 100644 index 6cf86e6..0000000 --- a/mes-ui/src/assets/icons/svg/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/swagger.svg b/mes-ui/src/assets/icons/svg/swagger.svg deleted file mode 100644 index 05d4e7b..0000000 --- a/mes-ui/src/assets/icons/svg/swagger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/switch.svg b/mes-ui/src/assets/icons/svg/switch.svg deleted file mode 100644 index 0ba61e3..0000000 --- a/mes-ui/src/assets/icons/svg/switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/system.svg b/mes-ui/src/assets/icons/svg/system.svg deleted file mode 100644 index dba28cf..0000000 --- a/mes-ui/src/assets/icons/svg/system.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/tab.svg b/mes-ui/src/assets/icons/svg/tab.svg deleted file mode 100644 index b4b48e4..0000000 --- a/mes-ui/src/assets/icons/svg/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/table.svg b/mes-ui/src/assets/icons/svg/table.svg deleted file mode 100644 index 0e3dc9d..0000000 --- a/mes-ui/src/assets/icons/svg/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/textarea.svg b/mes-ui/src/assets/icons/svg/textarea.svg deleted file mode 100644 index 2709f29..0000000 --- a/mes-ui/src/assets/icons/svg/textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/theme.svg b/mes-ui/src/assets/icons/svg/theme.svg deleted file mode 100644 index 5982a2f..0000000 --- a/mes-ui/src/assets/icons/svg/theme.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/time-range.svg b/mes-ui/src/assets/icons/svg/time-range.svg deleted file mode 100644 index 13c1202..0000000 --- a/mes-ui/src/assets/icons/svg/time-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/time.svg b/mes-ui/src/assets/icons/svg/time.svg deleted file mode 100644 index b376e32..0000000 --- a/mes-ui/src/assets/icons/svg/time.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/tool.svg b/mes-ui/src/assets/icons/svg/tool.svg deleted file mode 100644 index c813067..0000000 --- a/mes-ui/src/assets/icons/svg/tool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/tree-table.svg b/mes-ui/src/assets/icons/svg/tree-table.svg deleted file mode 100644 index 8aafdb8..0000000 --- a/mes-ui/src/assets/icons/svg/tree-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/tree.svg b/mes-ui/src/assets/icons/svg/tree.svg deleted file mode 100644 index dd4b7dd..0000000 --- a/mes-ui/src/assets/icons/svg/tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/upload.svg b/mes-ui/src/assets/icons/svg/upload.svg deleted file mode 100644 index bae49c0..0000000 --- a/mes-ui/src/assets/icons/svg/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/user.svg b/mes-ui/src/assets/icons/svg/user.svg deleted file mode 100644 index 0ba0716..0000000 --- a/mes-ui/src/assets/icons/svg/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/validCode.svg b/mes-ui/src/assets/icons/svg/validCode.svg deleted file mode 100644 index cfb1021..0000000 --- a/mes-ui/src/assets/icons/svg/validCode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/wechat.svg b/mes-ui/src/assets/icons/svg/wechat.svg deleted file mode 100644 index c586e55..0000000 --- a/mes-ui/src/assets/icons/svg/wechat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svg/zip.svg b/mes-ui/src/assets/icons/svg/zip.svg deleted file mode 100644 index f806fc4..0000000 --- a/mes-ui/src/assets/icons/svg/zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mes-ui/src/assets/icons/svgo.yml b/mes-ui/src/assets/icons/svgo.yml deleted file mode 100644 index d11906a..0000000 --- a/mes-ui/src/assets/icons/svgo.yml +++ /dev/null @@ -1,22 +0,0 @@ -# replace default config - -# multipass: true -# full: true - -plugins: - - # - name - # - # or: - # - name: false - # - name: true - # - # or: - # - name: - # param1: 1 - # param2: 2 - -- removeAttrs: - attrs: - - 'fill' - - 'fill-rule' diff --git a/mes-ui/src/assets/images/daiji.jpg b/mes-ui/src/assets/images/daiji.jpg deleted file mode 100644 index e2eb459e013ec16eef67767f31c8d6b2980d74b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15163 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 diff --git a/mes-ui/src/assets/images/dark.svg b/mes-ui/src/assets/images/dark.svg deleted file mode 100644 index f646bd7..0000000 --- a/mes-ui/src/assets/images/dark.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mes-ui/src/assets/images/guzhang.jpg b/mes-ui/src/assets/images/guzhang.jpg deleted file mode 100644 index 125acf4e5696ac2c45a7d350db9f6eaf252df9d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15111 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mes-ui/src/assets/images/login-background.jpg b/mes-ui/src/assets/images/login-background.jpg deleted file mode 100644 index f7cdb9b63ac9318b1790bc4125770bc618af7512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5642 zcmV+l7WL^;Nk&Ej761TOMM6+kP&gp=6#xLRQ30I+Du4&{0X}s)nMx$1C840W7*Mbd ziD_>C|LN6ndc`D6pS)M@bR5pN0({)h&@cb)Dd0ZmqJf+s;LoMognC*C}?@0%{F+f}~ z(hKu6P!|kzg8WqXs4DO9ttC_YcEQZOuWl9z7|55K*~rytZ=kJh$KLeqSCy8XG7olQ zfVg9%7zG3^>^<;SVt~3$L2q&k@l)d@kbCsx!!gnYGlJ3jiFKM?xnK!Nclx}Vb*BVZ zj0LyKfVg037YuZQ{Gq5phhw?nj*{;DRQIHaKJ3K-o()tJE6I>ZOtUBDuQ)g65RmI}*VN}I7n>w9Nsk5ooHk(bRvWgCG$bvxt2#dwT{k#4I-de4J&!m_$ z#;utd1Ko+bx;s0m2ygGybmPTUDp85#!!v*rKe+F6 z9)2$^LOR-cjbe~`XtFV$(WMM#mY5YD$MR~50^yF3U;DzRy(Av(NHM<^J>w;wSj9Yt z^}a-Rf{oq9K3Vpmxu`jilJYLrQ=#J7BUD;Uqjdx?m5CKjhq5nm_%;KM&Ng!s9{T-- z!`P3LMiuZfpe`wE(n0SjUi%hefVg9%3W|xIR>utrfqmw)y=q!546_vN9kR!6gUAbx z9Fd+2{}C~Ksz!jcEZ2S}){5m*bYveg+@9yMZefh67zmPv43CPR87@KdBT<08P+kx; zqaim+=el6yh@~(Nnr~&d=kDVjYVsf5RRf(=folfo}qpewOyFF)W z$EbHpdXj>=G3^H=7vgliVXA`Olt;UZQVUadmpWu0pg5|8Hbhs%Q3F3EHA$#IpF7u% zs`9NA<&Ua`8us=vTNBy;XVvGvV!V%#gfS@Xvh7g<{40p1bZ%;Q#NrMqR&<6^4$&iv z#b@-FcgIS?%M;x~$@Ibl>7QJA7({|-vp$#E0@PQGE11NGiVaH>%Iq%7mp1&`afD)) zZAlqm3q$XSD^AQ%H@DrGpe`eAdm2l-@m5q~-l#1)pkF*sc(0(PQ0-Ryk}^KbeY$v~ zmW#O6j4~|>lkOf3eouG`(TnOOu*jkQT~XDf-<|ShrfzP<_jT~cWRpE-cH-Ws zEl4lLPz0F95c{(f1;YTyJ=ux|(_&PF%$6d{YFXU$jk*n6)`jDzzeJwiY45&R(R@T0 z&_xE76aHG!RO+SLlasT`tc{_r0|+SUU9Q(_tRdd{>EzrpWGS)Jj)o60V_F`*daw6WyDx z60M=tw4-%GPE}1ZI;u6eG`w(HE$%`29d6Wdc&YD62fH}#(zPJjFKM#^E%9HP%sbJw z2xezV9J?}Dwr?O3j$BWZ-V|(Q^&?XIY^oSq0)Lm z>}URq(8#n2ZG#eJpUKCQsavZdZ-HqKCo(qCT+7h9XO0${>>73NJ5_%1Q{I~(d$SZ@ z)%>^jgvH2__g}caCWs9x_L%h0s^mGt2L7Dvj`eeEgKQZd?w4xxM33}obcCq7OK@E= zpQ?(6xg9e#1qGDly47qK>|O{UXTu_q`103a?gttoPlfEKG$j9|cUvE*d* z>&_4y_zh4xol{m(l(xv36`ecD%YM?tC-X0b%RTW0oZ->-NZVwH#h5 zd(v9|>t|i~sp68D+9sL_I_47r{7ocL8cwDW8a?7s(-_wgWjxFM=1xr4)v3;+d?7uoy$Tq1|V9-{Al1x9_A)dV0_yB;}EL5m5Mgg*(Oto~Q> ze*ip4dSoH6hr-9v_#tb3NreJ>grJGFbBDzfqZx#@>eza(Xgyux)PnsWnn}zVDHPC} z2j9KPn+ErZwr~f-_YY$ct+FB=E`|*P7<$f8MjGY;rs9ca38zht37x7gkIJPMyNk`&#I{V#@O)$*+)wGLVn>hHeWJs$pZ;yq4 z-`Jr;>)!|Wy^WX=?@0&oeu?px55j#SCru9*e7L!k1>DC7T@$46kdk4qNBE+OE{l($ zrRT>R1SpPc+v4O1TYp;*uDR+^FkXdt|7v-`CmN7i4d8*DJ+(P5A64yaKO4NT#SOzB zxdslW40UW9>&lffJxXm=DuQsM?cVNK0iNMc%0KH8nQTsvJb<(R9+@P`$YAm!BC4JM z^TPdS13G?4&(U^R_@~Y=JwM(CPjq~sFsq60NeA(L-~j&hyPyC6Ge+6#i}?Zn|I8D# zIGOz3znQ28xy!9IgtKs)ne0A5NKNrP9Z1H?r}E&)j&iX#2g&=gz^efY{PttMuQf9a*U!~vc!+g*Bu`!8sD47iF!DL(TZimy0gK{5m9FUIi_-Kry<-oBbq z8+i5PCpgNXH+>=$E6u+kJb^}kVPy_Qt1ka6pLu~V05`hJ^zI5_aQ$h6qZ;aDDcvHx z^*T6lZULKv3;qnD`2fVBek2af<1@@0b+JjM{1)JPkW{=avSe4Vy#odVobZeu3I+Bf z{fj-ZWpau#X)$T?j+5JUw>xr4z+LXdyCRWQ0h9zxZ}<5^UCb(L6EXxYQ1HWG2m)zR zo%LdG^f6QIeX{*-kgQ8bA|r3X$E4krGTYY7R5XO1A~nQpqZYLCYBl=Fkb;AMMcg3k zF}x&H;}T41)f!5jNb%Fotw6S0-3SHeLlC^|5-e%A38dw7s?q^MMf2h(#MM<4R()O5 zhlE^NDR!fH-Wr1GCKF<5lsim1uFmpWB7`i$c!Up!VwZFRP2pG2oibDcDt) z`I=&{Y5NXRRThkVnbsdwVaSi5!i&iMZLK$H1?+%(Rg>s(NypaoI>Xo{d5$fYD1El7yM z%_GlY@#6Ob3hQ71bXfnGzo=5V4G)Vm?{5+yA@S(KA9{v}93^NWiMeFgnPVTfNFm`) zt_lv33lzEwyQn((s{_}YH&qxYGJnTMy7}}^@m(Q#BLTAr7_H3U3orl!({sReaA(Pp zy@rcZj18fMf~LEs8?)#VyJi+IPuasb-Vyam8Yrjpjf^Tx&9=ruef>jZ2I9I4V5*cQ z-!sq3s~P%TKmZP?em94|Y1RDaN}`uTM|R#foK)1L9QZ|3auUjFdEYopZk6!o8%1T# z=RN-b*1kQ}`khkfTYYk+4oQ;OT7H5NiWb8KzL#4F%P=r41LP3D!bvTx^%)gu4h#RT z3fL$zP<;HDxR#UQ*pmD*rHi;*7%jPt6YKD8^GJk5Dh*C1?@<;ot3itmAzSHOIZEAb z4-eXmAN<3Z7CDz4jP1sD9uD699s`zd_(beNW8yrZz#ghZq+H{{S??Dny~$>Zn=F)3FH~QCr53e?FP&)dALD}uM~)%#LXh~4 z@TF<{;{TOUQoNipfNGzCKd7GtLvWmH9VcXObhP3#%^Hn(5j8}B!;0QcB%%5h#1g<1 zkJ4B2YmKSO`H$SE!GqYi@zY&J`0TXA$!B1Kj$qV%2Xya-a`7J9A#A*0hS;n|DuRNn zFcC?i@KRt9viQ?9j&p&uaAkw^C{nml0SmPWGZN1e3SzVR#p_#1$nU?b@@fFp?1*X; zh)>B7sATn}zhikrCnkLZG6xx$ z_?G#a#$Z7#4!R$Os-g$F8zDT<+ z=xeZ66^gA4S{IlrW_r7dd{rKWtg4kFjZG(Wrwrff7F_YSg#n~j4dv8rDG=-$Jn#Kk#-3S)Y-eN-9 zT)WqZB8=I};lFTT14y2x27oS;G00=1ZASn0UXP5jT~p|X-8W&2wkOcs_%S$kp>+5S z>j$IMAz1ZK8~qUX**zq%EGGvt4fjC3qU~Nol>B~xi7LGY))CR3J%Bq)Bgwy22IrFh zP}e35Uduios`Ot^v-~C_{~PQOGDFNIkl39v`{czD&Z2q%Lg*5d=AvMr zIC5AMRW7zlq{N-?q7+AgIo#z}hfTA3C?HWVy*}h%BIBVQ<0Y{Bbylb`}KdP%a zEuHb|3I4Skdt43>P znm`5!wN1y#{?BJia!uL;kaqyuvu0ft%rC8|w59AYGLr3n8KHS4S8Jh$s{PN5tRD>c zB5>TeE)M^B;`YE7udn@XzXkqKw&Xau{{A_>jVe|Lzn|_v6lLu#0DgO ze%L8VoBWO3U{}J8YFk?%}?~}1I)h7i*0c-_PtQ&uSnAs8D*o#pf zkQDO=p2PX}iUz|;NjTB{{w_JGi(gUiD0u(60B*G#;Pt(&nKx#0NHSYSY1milL@Vgy ziq!*7Us>Hru*1?6$#G*hFu@;Dj;mVKdG9# z<&f3TqU4g_ilA%)F>%U=Tpyf^px0--b`)??M1#|B` z_G&!G2q{lF`J`fRcjMF*4-c_>>A~{a_9r7~J1hTiM*<3oWK$yW0szGT0guU=Ja9M> z2coej#RC~akWlYC3q?*^>nG;MOfB^VDiWXAKwstrM;|W%ANpB9kfEK$PuL9vvIRn# z@EE~ekf@>1uS(KorJXL+C*^~_q%e3#Z91x<5u4I9+n9FO6aoVu%X+F#RU@)Y@ZCFj z?DgPTizB(#Z$OV$qgh6&hqLOR3@xiqs}GED=4HHs(3#|OD)jy`ojy0_LV^slb7)r4aq)-yP_g2a1K@ICWaKL& zqOok3U^As)^jJNjJ%a=^78YEH1q&w0t2-ERH}p}Rtt59;B0=H$;0y8PMUI@HgZ)lH z#s6^@O>(cljMY@Y;FU+RwV`$b8F?82brnV2)dyUxMT3*{j-h{Yi}%(1x&U~yQ%^~( zpfMD9q7+^I-(}`GXdc+cisFs)dQZ zCgRnZwhLJ(D#d(o+G@_)70R420Yh<@7k#O9&B5O>zQyJ8nI*K$y zVVZzuK+7`#Idt8GshO}W-Wv-(?~muewH@dt*U2o8$In#9=I8OHmut@J;`zpDhAidx zP+tWQr$Cw&DEI^9>RuL_{5vaBWCcGT zIO>NmGepankfsEU^(BRn`8g<@u8?L9rv217sH%pFrm|_+rm1*!gqH$gi&$BdVzWw2}mj%lLVs-symQF9&C zeH)Hrmqx*JSJ%bkRffW2BuRqNB*1VIVDGSx-XKI6C&;y&+w|mEJbTAB;Mzb|7|;wI zag<>m7T`|Kix_&Lqu>VB)TZLS-hb5j->Yy&VX6Gd(y%hWMtlcIpG8L%BooJQUE(DZ%OJO{pK!LdxxP^AW@#fBNjd!5{sz-$EQ~I6fX>QcR%D3z((_&(`64 zhU_Tb2O34Y-G*)3%J5AGQI=yko?t$iBaUMfx{f5z5T)u`<1E9t$S^hy%yk!`=0N*v z-}hMIyPkN&d6MJK{t$b;fd1#iC{7|oxj^dX@y2musP}o6hFZ;l=iBgH9j2+vXCzsU zD9*(&X7dbDn99wS#V(@?Z?y6>Gzh?<2Uu9JB;$=vkt7+?M2@Z^mZla(A{jF9eOzE3 zw^nzt)~Tc6yJ*%dc%BR0G{68O20?cR<@qba<1vQgnHa{w(J>DC0cN~=I=!>1QyB(it$2=EmPl0Pu~QmH%A0QhS_Z=~;nDz2 z9ggck^KzVj^kID04}TmFteu5s<`~Up_|9|B;#;5n9HL%~JP9zJr^w?3QJ%ojO%*X* zT_P);Vzb$VU#qEz?%ERJ#?u*wgR$(IRIWuw#OTL;V`!MAIR=J_sqG@wEQGvsf8(QX zFMPKqhQUR>wKu@M{b^|wr^Znk126v6P)4bm8SQ$LW z#@b2^okk5!-;qs4!{9L)g1K;-pat#V{(!%MD&S1a5xYHsSfML<}*Inv0ri$%G!y_#HuNra%A7>y>FP6Kg%Nt((2iL)HJt|MlIC{oN}VC*(9HEqO&j(`s8XFv9I z;W;kSv_P1|xV=Bbon2)Z%Hvhu`E&s* z>%ij*bV?baR20)SQy`J7U9JNI>pWX z1UC*Mj6&u>D$Al#xUMU?f@P{ZFwYWL8uKQubBZhvk*2ZA~!u86ENhlX)zAjs6CXj)?{YhK-q7$H*dtG7;t}W<0CE`(qz0YMv__ zZWKnixj(|qyF>B9)y92;OFIesV#4*EuTNj%Vf@wn@hC8FeXV8qY2ad zOmLALhu*GAQXM9Vjw{}TA(t0MZ%(`)M}%Suv!^+eRQ|p4)ROG#h8PAD;6}rN?=um% z#W0v?F1{rF6(doRi^mvG=jab+Dq{2}h!bUSH0B~r;afnnX(QJ{Xay+>2ZO;3DGjbr zpKt0aAF7gBWq74`UG(CGatwwF4a*TYI-bvPeLu$Q`yu)PBTJ4Tsn1>;4`* zbj%DBW2=ERm=+=0k1jYkvxdfRd zVU=thHH!(j3EOoPLq+eM$FRAnOif_NXcS=_TFBC{BrWKq$~>mLc7a0@alybT5uV7w zWdx~tsMme?gjHnIgnr~D5&E3wL}YfjuEL@Tp}=)BK!S+Tt<$ow-7>M{dnil|z0n-^ z4rA;M=a|Q2(g>%x&KhjZg3h048RCq_tRpE>cm@6vJ;asQj-VGIOu~V@@)~c($qciZx*=o(Y7W{BSH9}>_}&6^`AZmEK_PmgH#0O< zqADy2iHQ>KaMN;eEAJ~1g>+@haHp?Bm(KulqkuuihKySgoib5OT+4f~ z=x79p7A7>EFj5(n7>}Vt7biix&*&s!**08ybK8dPCUERJEMdANz6j=LA~A~}Xc_@qD@fr15?ArtYi-hGK})S z5Zb@^2me{oaO;BM52sT+`^pZUe{l~wDMww^D5}l+<^=M@+iDPge0`~gcHKg!=A-Vr z(5yFxTB%W#RAqI87rp44Jt|qM6PmL;k7{G7P|m2P*enG=)JsK}tlSKxv!j90Tk>;g zQ2Z}92q{P?qax)>!x)Sw*zFC`KMD}%^ty_-f9frDxOt3up`&i37-kNhzaB8~LDvag za`9}sVX03%iMXfdb^>Ec#z*c)8BQgL3Z;uBSI>^&oLa-T*3viNvu!MQxn@O z2tX*96&8XxLKwxeF{*Q?SFYBpayHd^%KGxWVaRziIyLGwv}&$+WJzWXI=V7~l<=3= z%KOH@;l@mWf=q5ZM-{UJXOn!;$G@$m3hKQ0Dwh zIz2jU?RS6WZxo$+TMXlP8saZrypFFwdmCDoDy$_7Sk*L6>lgg_3Dy_b0&FbTvDWs{ zY1Wlt*r#EZH;eS4(5WS-UqOvG8$`9iwUV=6^hy;~s}}jR)F*> zdM8rFI08pPJlWl+HIM%o998G3aJz0)jz?{N-OylK>b{wUhFO?Nw9*k{wd=#P6F6o| zQOt$f5Y>ica++iYW>F|?8KXrNVb%4Y){PdEe_^>8J;caVQtLZ}#V$NDdP0PFg8!?v zr_9<_MBpXkylPQrkpgI2gG;CZ>X=>3<*{N#5)eWxjG`&U5 zv#_%4W2x<-+pMF}@OYn33}G?qys?<{#^m!9TB(p*5dc;6QqZA_4D`yU)$Ef^Q2w4C zTo$lUk&j_kB1Ku0iup}J2$PAokD?gE(l8EtLmVAXqzGgcr1&y;bpvOYeVBTNFfY*W z#~966dnxJAGUpMG$7oSj>v@OKR^+*gj4Y?@U-mjWR7mI8Pu zhEdji_;1&;VOvI7h*Y%-*0`wDu%yCICt?VxGYLb?qFBMmd5mC2#A6{bNzEF_O-t$& zhqXG64Ifj}LgsjYSp#g|Bk@LXj1;v@hxUcv{H3DVY%69cOz_1QzKt*ahgUJ3WSA$c zQmZ6Kd3Qrmox1W0vf1JcrpDTZiS_k5)|Py%bXus@6$`Wooz!P33zrB|!m35@RsD?b zWukRj5L3si4016#2=XYs^rCSn)=5F9)9SfOvKe;i=~7A%#QUa*;tZq7M4(i^H^E_l zCWRy}FrkXB7clJthNa7$Ao8@@Ek)b+Euh*bR}gy z4d#+;v%<~q!-#~4A`McbKuEM|dYJfi9M~@UmWR}|pjl1ij*ZMW;2IW|c?=e4S*G~& z-~Hvnb$mqeOtA8oUU~sv{Ill~hC0TxKoxV!P^l7GhHoZmWD$VrEJTz5^@fM7jk@F+ z>+L2w?S^ci6VFr{0XI%%7!p$6l$0(;6E4_EbSRVT%7}Oa$@VOw_eIRin@c*k+Kg4i zkP3RN=-;$RkYwsTQbdeX45w2Z4@NldPtiM`A(q7>jO9jGIv+|z1O=qz^kc#JLR!kgujm05_)XOJ(2~l@FDUwx& zVOfeyu}f{0IH`>HP?S)LNi@kIu?T6vf{8Rv(7CjNAN-*o!uf|D6++?ewO8?{pZ^?g zynILWd8ZCbX}iSXl|@Y+&lQ6(rAW)Nf)pT2A|)+S%%%YtB}wJaqXZEpJfK{KCaIXq z&@nN$T=ZQJ$EJ(1d5OI@@(HNk+D1fz;DMB{=% zrBbRqeOdH=10TM)h>J;o6~PolP*q~Vw~O@wNqiNRSQ!SZ`doxCPNiVP#FRgaSf^m3 zp3>8%7)-`E9*i;QPjNIDAeC&4*q@=F*qQetN6gJ7iLruF^ts}9tEgJSx3Yv$)=Sj& z5_TwuLmaMXPN`()zO9E8NG^4;%8Xo{CVwMPt8!G zKvvbcM+%^}=HsXT{y)TnXPzh{3dM~D`t#fP-~Q=;ix<9f`-D!WQ7}JK1xTJLMDxac zr&)K=tk+=Kie2RKSjC=&0p?*M@($K1NTdk+#iDtxValkfnV8!;W|obC>0;>knAU2@ z{021A)1HA3Z*Srqt1F1&09TFE zO;d@Pqt)=lqX-m30_+ZYC?Zz3xj|AfohEb7VVa0xQB5GXQ5ay>V#?&ZtZ5iDDrH-e&$0GIr)N8kG78zKG-hQOi!a`5sV$IN z7Se!5;lLITuWBow_%DAFAN$^)61`5YMJlouwy=YL{JH-V|Ld>(s;Ysg?V)IOlXW7M zciLJm^^``_ms*8F6DsfI-VBo*^EkmQ2$7^JCn0;5Xd1$-z&KA485Tmzz}&GhGwSI3 zK2ooN)M>zM8u&kj*e$&)@;1>;u_9xbg{m+gl3DfZ>LP^RE8zq zec`o8$4auPEBwkuP!XY2d5U)>RG=TBlCzYnm$}-#(u9dw zgyA@lXgCdKBIBT8@TM^OiHLAC!O>uh!@=aFfT&QkddXsnT>dn-5!_wY9{3(^LV+l> z7sC`RTsZ_q2#{trkeM0mTtigmTyMK%qUGvRe6t-L2ZJ21+=;NXWT2K?uxuur4r~pW zQuRSqmSH1~LxD1`Q$ue!lVmhvEhVKagh{Io({n_2&1BTfOi=+>N?PJ}itr54QrU2* zPBmC%UnuDDnnhQpj74%UdUw-=N5z4q!>ZNbW^+9A@$bV={md`IGaATPBQY|F(1Ao! zVd9_v!T*Rq_@}=E$8wcnS``b$+*B!LSrcp48zS`}DL^=zL}f)g$q*+QMl9Z?xm55O z>8O0r;9#od=*1~!Y)Nn$n0h86$H&O)K=Vwjo>|7H9(fCX?&%K@mx`E|c^0iV4M))a z@qh7Giy+T%JPj}$1sDyc2&XaTag2aCm3;^rr3et|c9Xgk*O71~n0%IqVJx*8c<90k z&a5`E-tC~-@|6r)*bbG9@^gf;ml}TwmSi(4gOH6~QfAfPsh_J5DjFAIYpO+2kg3|N zgaJa~m1F^xrV6SNRwW`i7Q>j%MY%~G%`D83CF~I)ETrswhQV-*!{ZV9lc`kZd8_Hs zXvo#(7ARpFr*x~-05mBqsrM-HBa40fITx>boh03)jH%X5EhIX3xrzHXa%`V*VZxF7 zc4vQvm+qxlYG~*hE@0(wZC{)O$r2N`f)83E8+tO05K@kwQ0h-AS>0DE2Rhw0=Hn?s z<{sS0xnjb2&k3h1$Fc~em~hMIrz%laNsYP}G;R_vl)kVpg!u@UwsWzK|LK4E-*JBF zE$Zz?h`g|&%b)7#rTh4Y|J~2x?pN=K_vh!^4h@ppCq@n(jV9|To1RHS^UY=C zg#|rNgaT9r1yRjG`?*iNyBN&om`2<Bi$mSS=!LvJ;ksJS(f|0}~Pdt&HxapuL?zxtb~=`C4g6ufAv?e`-SI`P@*0ulE<)+$o$pTbLpRHcUrJb zOTNS?k{F}ORB~R5QiCuQ$p=Y5UI*8w-EPA3>#%JPM^S`>d5D5}Pt8JRdFXo%-uCc) z_$MF#Td=GKv^+tmWw6gY6UqO~E#CQ8gV6qS@7iW^Bhd(H(_EJNklDr2bX z7wUJpBy~JDdhY7|l_K{yoYF^{_x_Ax<F7V>*5Werj%`>D~gl=nDmNA!nCXvlQ4PsHdYTSQ%hBV+k zb8!@mWgVSV6Wti03!Os2h*5$=R*%b4hnyn~gUvpzT2mUExS<*GRG-CZZA)Nk*TvSwW0%JH%e#?C%l zXM>p|xzcdN=pG6Dq(G3BeZoBIsE5BZVZVk>Y{*UTTJdAjT|CWMlKh zsa0XPZ8dD^MTisf(QIy-V>%C{QcC%>lvFv(iOisC-YGXXy*WRV3=IuqJe`VX>M`dU zjud_^^A^bs%4C}73+2SSf)c#G|?<1`whN6BArM z=i|aMtLO%Nr-9wU1kYWcAun`nt#*+lktE-wG@GuAGb?S8`6qFX-Tj_;NJa-UF%V=S zOs|GJhXc$f5uA<(Emf_?5+RuQ(ead0Z&3@RG$ z?%8NIJV6^w#2w3#&OaIj9W|W{BYeuXPBBa6KAT z9S7kIvn+<~+0Z==X3fW-)FZ__3bkp3QArXDZM)P`-Evv3VL~hz zPGqAfCT4+&BJ9bDN0pSJ@+N#=1$zXt$X8ViJZ;udpLeQURh#ux`dt03N`{GFm0*p< zDE?OJ7IFF4N(adrKVF#UR0!|v|hoD3dU7b zXqAL39g&jR^Cbi?^B|;@t)Wv-@#OiobSYY9j^%C#$FnI8_9K{}>tc0f1>tcYS9fmX#+@BZ3IpR_fZim)B#054Ib2;s-SZJd zq0(nb;g%7OwU`{uW*wW|wzTl_z7f}tCUezLrm3|O3ZA_&1{J9$bUTJa8M($f2qS<2 zf1{3C!$&?%k&i+YnQ9Iq8N&V_-Y<$F34t3mw%jWC#7M!loXn=8f09;NLN8HnC~_u> zL#bO3icxyr>a^kd4cJZ%$8n5d9znM=bej&eMh!c)ZTyM1jK>~4kH3B2Wjt!P5SqZ< zIKoSV0X{uF#=&}sOh zpBMEaWy^*ko@=Yqk$wSU<35wyIFL%Rk`PPj=0q)9u}DndDg#k4N$H0aBSqAgtAw}A zB?Rm8gv#EAO3PKXaGrQG6`xdoQ|1Kfy$tni#xYRyZ1GfNz64T~hA|wEC1M=*C#7K! zCaK8_>hsEKJZmUa!JYKKSC#p)Z@cVYsK^0&I~6Dtwy%tXdZ$DyaG|Z?k+XH|4imH; z1DkECQFUqP>4&;RiOtm|tgNg_FSu^m=nW5Xc4HgOr8R*U`}gijfo}WE8XiBt1+$oA z)ElBVpWs_puHyOY`*?MCgjojEZ3m4;1INQbSuj&tG8zUIy`FF3+-eJYdEJay!wH8F zFlV7rD6yTM=^$-Tm_BTSRbvfqy^e-O3A-z#jh1P`iovs?CCpJE=!6AAB`k&Lu?WE_ zrLSrgvzU^b0BNEqb&=mYWXnuMa~eg6R4kSK@D4hi4r+}yOzNPL2$QUUSJ&WnJ$QZ# zuh*CG%E}pRHP&&yRfAVo!xCnBg3rbUcBdN5*%0Yy0PUar}%mQsQW3Na~H;h>^^ zN+w7)VO2k1LSKpI*e1)3N1c&?`jZ?$@{=;3s9>2?sCCtIpuCde#$}^YK9G`?q9kM@ zZLLheg{CYOqp~2S)P0dXs|>QLDpznyny7>>F2$ELY8p(Mp~enH6JUw%(F+bPEZewP zPm!7IJ}Yo*5M$>!!(g0XNa=*8qh*=cSYO7a3m5S2$KEcE=<{Fv0hox2%kKexy!?7@!1!(&YzVqTM_*Y-MhRMu8p|gkGgqcCWoSY{VWy(C#sV8ti zg#$MuTX&@o47R0|3ygMg4usTol?))K!-#Bzey^l@dC#O}*>}-!Ja|$gQECC+9~OtT z5>D}FL6Qi2NTVQ=$h?R5w$*A03Bk3aK~94y#zBC29HHTPSX){~v(<&>dD5af&LVhA zHd@^}^7b-@OBZmvxsIcH2lu-*6kZ)Kq;ER_>r!@VI9LiK#G>Ko@V z+P()eQB5<%){2YwKG4K{jT~2wLfkqkaJwJkI7mc-Q#X{T&+}`dT3%W0;QZNhc;Ngc z(83Aw@f6xmfB!?p`Sn$tU0p}Rb43)mcRa)1V1U1f9=}KE_dN6DaYn>LB z>NUj3F`mWf4MrlRSgtqVyB0K?c|s~Ob}~gmS2ABXX~HiD5|qQh7CrCj$e7AJ7L~o# zK!FOLGsnqIC-#!tm_3#!)A%c)`_iG)O8)Szr_Jvg4IAq{0@liX*) za24}(D(S8avZ8Y}nMPs2)L1ArkmwoehK0g1v7`fUIqTz*vmVGpeEzu+c80M?N_;EB zs#}O~j$L%DK(m*CEZ<6Z3F}*DaN*+puTG!(zzvUKe&y-#DJ~Upto1>o4@r(_}mNMgwJ|mZeki_vH{y3DF!vzVK7TE zjLN(Yh5Vj3i$mN9V>u`y1s$AuA}|!kCEcG@@46ye8lJEEJghRmlWIStzn^k+(#|nk zbAw36EhU6CY}pmL31@{hBx-mbB}t6#Lmc;q(!R>`TJChwZg*fd>X_yk=E%@mZDRFI z8(!xO_G?S{y1R~N?FK@pj=<94YbnN@cNHYa<2mv$1ST_RfBOd?D_XvXjdn+-2Bo5GL{-GWaQ50DX#7A;`-eqEII7n^WpepdpH5m28~bx zrZgm!Y)vT(sTinA|00{JENwFfQP`<$WRQQHGE>~hlAo8-+A6P*&nTgqK&h(3sZ@_v z(L<{6rEI=pjw-`Y5o3n^qak`@MhvQ6D+x-)mYquGPa)!IPr*rHl1)f4`bX!yGvd$87eok;Y0PpurVrB`g+MB5G;N zp>0*qKAj1RfYnq<{$2*XF=CXOtV(IkpRvP^FG8mgStBYo{1*_S>l&lve>s=39+w1VU8`!ID;5%*?pD`^YmXDg@$~A_R z(5Gw#PGJO7Tny*X{?3oQuc$i~T&<8{Rh$mk8%{7LwhiX!Pi7bgIJ3IL5^RJ_A`smczE9{`tqzKKF&r%VgEb{Q*3x=Wch6+xpe1a+SiD8rl zDCyUI!#u0XOP@+Yq`F=*K@vTfFqVwbDTS+sE~w3{dZm?-srrqY5;8kAjM3~w3Q^?^ zl1EhP*pulWZyYUDMM23;a$RH}Mik@BvWItGZllOjT->T598dA(=f)UJbzD4S;>?l_ z*R?Q9Y=rX(a*>J@0*^Yi239t=VR$}VzlkTFdIz!)c<#k#aoFF(ox>iUees$MhFk60 za4bf79q+wx9?yL5Q+VKs$1y+T)RPJ78y6799$xs;XYt~*FJP3r7*2b5>0lqb#{pJa z4r~}OT}zlp&dcHkrRFJ0$ONfc6_Ef3#;G-{1|^j3%+k_&D*d4rtL4|>JDk{3j^`;L zo}Q6}!bK`2(kR6s2*fawG#2q=Ri|pTnpj@y2%Jij2;=cF4tjl|bJ-8yZnV*9FT-ip z5oy58NMLtrSUY65Tuv@$$Vr{O+H84Nj_K zdwogzG8!H)__W|A#k*?IMA`g)0ynA#C?PVd{*3bGmK}tP@TE$^)z1{WQ~iv|VD-KF zPW`S*n5CXlMkN{s^Pb9RxQQz$bvz1icr+3b;bMEJ;_grD5O1!%oE-b4pW8-Gr7MeZ zrjBQxT*a1=<87NY><*^*^0gTd6?o@mM|#Hla~;8$BtQ;0uGEOg)-)_1okkZ{qb1Yz z8ud2nOKX?}Gu*uPvP|B4{>pXS+wDvL0qY_pLoTlRIJ?ruN1oWgTc3U}>K7jsCWk{? zjpa?m!5n}32Y-kgFFlXPpLi5{y^i1g%$M;OSFg)DdQPMovgif5IwS@-+lwj3!n6_Q zdwh{nu7*00$`yfOnJ>}+Xc(L^MHPiGf|Q@Qwu+E7SB#H+D1#srNYBmBV+!stG^wqu zEVt2aGGZhcPR7{T-xo^PHXU>u9W1Y`!EV%r0w1{r{B{SewKen_Yv{Qv_#@52Ex#r$ zx1R06&O#wJ-W^AHcNXIQC`2LLsd3Vv^2oeteHEp3=DL$hZ?Pxs5@pLMQ_B@)Q zX8ZWQ4?Tj1FI<*F3q@#Gj}Gx`zxOAI1_92jwcY6w9ldv5LVFV6z`uJhJtPCZxlnMpxCMLlr%9r=*oVGiaC-no~nq^8?cTs zmM=ABiwu!AX8|WPz;Dwj2V0Zrj zH}-nsd7G||{oY)dnfE=ojSoD&j(5HPU0A#L7>wF7;z1u_;lOP-kVQj0|K+dX_x|ml z;KKR)@$~s7zIAs8zy8NxgM}2GR!xW!R(tr(bk5omMWkw2hVn&~_*2CXH2|S(;Vp;T zG1+c$Zk4Tu>B&Sy&YtxxbQ=xSnl*_IVHitZI|)L8ZUWI{N=YF@)mB!P&}lU#k{^$T zxU;h(G9C(1mzrIyZ*0M7)#VJTV2uG6;$CH`hK9=5jaXy2*S0l3^T=L=^aDQlMg|P7UyM7;_cf z#1XKwj_sy-j!!(gfls~v9RBFpU3~7jd-$;@+xWm`4R?=cxN&UZ^?e%~4GpuLVKAZ0e>S!eP$tBQ;6jh93N%&I0+Bf*s-&jX1d(b+KrVZShQUbItoy2-Wa!dw z(QUO+tJh^%8v87cr<56~nOKrz2vGyH+BGb9mr(OOK>@u%A9wHVU@{HFFuLs}Y|t<| zP0Wy@X92O_LeyHpxV?!lIv(ygK6I-t4(K6G$9v5L52guLvKUKwfL4^jm>)v>JD+&E zAnvnRm@!GUMmQYJg%voO1UMc?NYX$}ctC;g`_Pkk;-QO}juNC{hCAsDzy0a2U^)n~ z*>SMU5jssz@)3UCBD|=)>0;u&IQC|dvK91N)-@_T%gXJObfyko>!NIwNtB0#hOWE zx7NS|=QeR1W%&1>{{n9B-Nic}I14=<<9L?9$}N1~d(PnCc#Pd%ik-bNo_X>D-uc02 z;G1=X=?rE*LjPb7dxIF~+b(YPZsOe8M=;JTeEm!R0h`S_zJ7Oze|M{gOD!rBJ!ENs zUPN6T>s@RsR&_73W~?JoG+H^Ps^%kd6V8URG_?I1TAqh?y`cukS+)$#U{R8D2Uzu< z@=**E)hk0tNl31cMTXU-7M40))a!N3(+G$C9`4@0gUM(D&2+G`w2Za2HCU}S=9+=K zS&CQd4cuz3V%lE8uG2tTYoKXq_^{>ReaNt;Cs^e(n1%`N9u6^@gg6|}F`BZflgP*tUiAGJ*74-q9+aZpc$ng~{sI2qXRitmywUcs z-15-w_^8)TCrT`C_)|EgHd_@@7Hb6Z{z4bSkYO7_#hx0)iE%Iz3CuZ#TndU+l<;Y5 zYxViEix)Zv6@aa#dY?k6{UE@Ul;GXzk{0N;hR_Y@s{&-JpI@u934+F4PzYK zo#Xy@K7{+8cn|FP5VyYhr)YI-jE=^5ZRZFNUtYrt*LHFFfk$xV<{|nAx3IOkjz7M- ziz!KsvZeQEnBeXxhb29&WyCOzlbQ}G-b&IV(L;hVqn?GOMjdUxE>4rR2v);ejXFB4 zSii|I=%7T<$jQw@{}xzZ>0o_nMHr|co?*9lh+DVsVmh9R6rYvvGi%#$T5SZ-a3xOh zMa#pL_69V+hJ3Y)OQwUrYSr*oC&6lAp_Zj+#dA3GF@k9y!@)l8-n|9w?|kx|1)m{7 zC?$h%qZB*6AqL|BN25SA{=|Z=t-+w6Oi!@7x+I0XqgjDl_x8~1jo}!!7zL&0?C|qE zP1+G<-<1h>Rp>dPGs|LIRWYs%sQP!+&s6meoOu0{>4+-1Q?E+i{FjHDEk=vVC>HAv z)u!f9=jm*Y{%9=B+~IH}I-LqKRm@Z+=}^~I(a@*HadJjQ3deMDc16PvJoN;+&IlJe zDJ*?}s|O*z^sNL>KiWXs&~f7s2#XNYaUm1E3748RA6gbcuW^cthleg*z(&`@d=|iJ zba8Ee7srDkKKqp`cwpJa-~8y)SX*u3>h2uZUcHNtJh_FX%MZfT9cWpIabO}2rf8pE zmEz)+FMR>6H65d2hTAuLSif9D?{0vl?gn0Y{W{K`S%TB(;CH_K3Q|_4^9<9%!fSV9 z(XgGUrP)SM%6vrgRt?Xl%9uY#F8Z|9R!gD=hhoz(C^c%en^@{Di(&BZ*nBjY1Q<;? zwqNy#(D8BV;QDeKo9pW$H=#&%_h<*#@9as$V7;Tex`Hz+XW`b`7;C^Q$ne?B!OiZ5 zD8Jv)=-?U8#yQ)-Ds(KfKpakC%mR!D``GW_!}UA2@Zw8Xp#9>HK3z~+EOSAjl(G8* zPUD-(l#nE*PKpeL4a;W#GoJyGi&pAde~if>7934Y%}TqDm2Lw|jT(Gkb%j-iQAx0? z-r+@Kc(Xw)<{T&ceqosO$t1yw!d)1Zug3Ddu?eS2z89m$Vic={eIhd`4TF;N!?DV* z)HPHO%{f)_R^4Y6#5+CjvaPissS)CV%{G4gyBpv)@kfuD34Xsmmsw zeW{1zu`5{mXl|lEiA3&AO_A4V;cynC;kR&pc^QrkEG?~|HwbWjaD*ZW@vRqL$FghU zCx7s}ao^*QNiFBofA~eL_*1<7$;aWGyMUTm!)!KzlP9?O>bK$5Yp6Fhy#B%qSa0bV zkJ-C_Bt=DD>l}{A)gRd2#(hAz`uIv})7Ieyt7*rMzO0koX;?Iq>Wo)jl37a&Xk8x-3 zHm=;fi|KF%%hs{Hv4-uH^Kffj473a{r!hXKd6+cX_)xQnw|Oo$sXm5*x~{>RPY_Oz z(CZ!I&b`}s>FO0+zq60gaH4XIZo?O&pm9u-1bfFLY5yEgrUDUY7)?HRz*cRj+(0bD z-##AT&fyd@O3$HTx#7zs!gi|xzs_MxS%({w`IXu%v%eC>?BM)PD9AF+K_{#Gyq2E8k*<}Ym@zIZ9dFvwFhL7*Oauv^g z?OXW3d*6n)z2kk@zk6NkRGDj|7#-uvx1JRR^tshGj&@(e+G-ucL5@V9!_H#pegiv) zbKDscwzcrW%>j;P6WrO4g|3x>1tn}c$tOyh`ZSlUhFN5&`3}~*EinugF*tNV7is;{ z%BmFSXar&yld06mxXyf!G|Sm0&TXF&*$11Ug82lucW&T?*KZ*h&qW@;vbKut^^0(t z9gw(wG0AWjHn!>=JV*k=wb0T%ct~JJBTOd~93JlB%C#5q(yLc-us0TJ+Oqf?S?Ns7nWwpX5r6+G{&uiA+GK9F$)tcHGQly$7t11 zZzxKx>gQhE@KqsCl(A*&Y2}rx_bqO?#r%WcQ+m#GsM;;%_Y19>C&|4UsDDz#t2|ou z;29>6r?8Iw+Uofj9ELC;oSLcvpL(4}jKwN^^_kWAD!8Sh3OgZ}eH}ml$@gN}$uJ$f zj_0n$*cpWQ&;QDKG#dka^Tk57u^Pa&!#UzXj&qw`>>f{`*(+!-FXQg*dngdXcMYt! zmn9Dfk)dAe;9vayzr%1g!oz1;`0JngL22#WySan2m(Swgf99*wa{ImyeGseq2zPG0 zi0-+EpzAT_(_)x4wE?3TihFXV@7ha9tn4 zFqHFs^LS0w_j0@Jlrz%pjL}gi; ze9t<_g>z>m!S)>wvtWo@_ip03tJe@r=5QeNQ@|N71j00+z z7W|N!urY#B9|wm!ct+h7Vbx%#s$V};w>JLY_zCXg9qoH&}tuD2((&SKQN6P%wCS8mQvKeK} z_8al}n;}$H16hPBVi;xrafSb@%5{|sRNh@ln5!oMoytq9w%Mvjq&hAKxN%bUcrp{s z)N!Dm*`_vsHR8V_0hCewB}MH*(-hJe-~Y~Y_~B>13)$=jUViNkzVcEJ-}UG!KJu7_ z&%ZoGGA7MvVCTTZYx}!+;OsJ{lMs7DU}^IK>>utS91rFBhO8^xfBuq;&fHpA#p;F2 z`1RlTm)IW#xY(-Ur+)0iSUZ5-YFjtE6p&z(V$ zS{U^YFrN;j)z@)Y$ctpM%iW_H-nvyoth@Nkt3%|WhUa%i=+D&Pf;d%!DJu1{G6*(l zEw&MyIulicuq9%wwA!fGI6;O_b+WL&x`Oq!4V8S8{Fw(*uwzFlogEd!bWY4k7%|qD zSETiJIvwK9{w+Lr}= z;riX1*f}^v6mTr5h1FFXo82ZFwYoA4HlNFkAU16z8TJPgOs1r4nPkPHT&y`ZTAqV5 zYaMAlVOqWx&+xNt8UEIh$13mvFCH#!pO;agtL-+-#xj2Y zbDzg}7NTVr_**~xeq4O~NgUn1js9^6zvabTH=Ag7+cJ`W zG9Ah@DrUh1*_=hW5Qa;&DIXQ4I* z+e0#*%8)kAHnFzSmd31&<+eNqLHoO(dT&ALF|A)Sa#hC|%%n+#2P8%&o!f9ZI>(aa zY;CD6b4-V$nI!7>1{2)w_hrxkBg*O$o9LO7EE>k?bab*gZ(uJLo+?y5DxiuMi;U7D zEhsCB|hrEGqQ#V{x)V(vCytj>e0jp9zKutrh|X|)vJ=&ed_(^VQK}wb34Sj zRU1vXxZ9h4n~?H}Uj)-y;?9S6;b-oyiOs zjq%a%ei|S6*vD}1_BBinb}-_!_T0kly}3NX_rYx+$2+eei)L6^U6SY4*>(eay+gFU zCi>Gp?j4SC|5^iwlL!~qySO!p@Grl<2aCc%BZih4xIGMkoI?`S(~TtWDjzs1lNH5r zu)bldVQWZ4GQQbuV7b{AhKOQE7J)a`*RZjv3_}phe5!Jckg5XpxZ*S;gmZCzn^0;+ z)Bs^H!QI2_c;U)xGU}6g%W``a_1X$_s&zT>kWYAJeilZU1S9PCcW`g#0E6SPObDsF zb$J9CFXHUh61F!Q(k1EDeQ3YK{Q>p{6IhvswQd`&rjKUbQO`mstKN$&R7KyOK#_$ZW{bH-wP7nL z^+s=`9!5z^;6~>>+LOt9^2`Z7hDuE!SoTnJmTT`VuZ~En#!H4Tl3D{@#y2Q#5TySS7Y3(irX?4KbecsXU=< zB6-S=WyzC0`8+!|uk)cT^E8(v{l@+P{pk!XX8v7DgBxhNwm_-M%b!A=ita2Q@Gg(C zstR@0gVM`()UrrXZS2LWcV#3M5kSM>bi}GwQW=Kyb(d7HB*d9A4E`O5b)D2G3Q92& zxpDGb^64DId2m|bEA>^C(pQYS0Oly*mJ)W=er%xA)bRd?&)}&`U0lAfickO9cW~wU z0Y3W7MHw`)b1=o3Zbt^A9Zg2Kv|7V%FT%}(nQVUcw@6gYB4PUMg3rhxl^NjtN)7M2 zd|8BXENo?3j*!MYoQk)7>l5$9Q}1~kx39f~!JU11K>fie#x$AZwb$-oea#a=W0B5b z*cr}mF2RL?7@W5?7cJHop1ljV=Hg7tg5_KI!tFw)rm#<&FFr|%t)56>k1%h8_(!fAy5aDd&zK8_BD*grnPey=Cctl>FW z={B+2R`bs|HG33urdo=c@8jHhTMWZu#QFO_{=QGuUf zl}{_J4C2iO!oRQBDH=u)@_bc-$oHxS7d5G`$^jSwm{9XG<>B^a?jn(d^J^(!WAYcK zLS2jDNs+J0Cl(&@EDsyuq(ORgdU-x;JjX+4>Ui?f3jWGF?nfNX@jIXSx~N>={@^lR zytRkAQ$xeiaQkpB5A$5MO?>k%tKAUN!*or7ET)yB?K;vtQ&%JG2$SQL1)L~5p2uDWAA(%g`42u<}FN)$JjrdA;=2sAC53fXIQ4llSAH&6kX58 z`Z`5*8pfkJrg1E-v0r*=7u#J2os}lObZsOWEI#y+tptb19M7sA4#O_RR8LjoQbw^M z+g-VKDYV>DklD=9taY);VSJ?XJ9StNwNrI$Z=J#VnJqM$9a*#4Y^HJy8b;1RbCkO$ zGOS~LV-4L_M->yZ7^Be$qv-@XC#@8G-gt`1aDx8e7_Z#AiC16S$6(l(A=fM+T-sj2 z#f`2Qh|A|i7PfTy4W?A`=2+?0u)5q-k2?4V|LF&c^>$sFR9MZVVeB1`u``$;n5gF? z(nM`)cIk9w@+ z={#6gysOt@y<*WoB>CgBJ<2JA{BQMp9#hRMQVsc4lB}MO!DlFx4{I-L7&Me{9t)J> z(C0~{@{z^Fx`KKq&xIkrmLULz(A{h|ee2mao_=T@AAIs5eDj4@@&Ek!Yxu+m-v+CQ zaD6|(O2@{XI|oP%8!L4WySo7nQ((?^V9o&JvmGo>VCAEM)eK(x&$Fv_+_&1m`HgeX z{WiR28(I`07!O6>PI{e5bi3Qd)_p6O&qIv&$GE$Qs6vW$g|ZA>u60bgO9U~O~P*WvCp&oy3**X!$x7jS~L*I^wnuz-mIltI!c&5Sg$ zr&CpTSI(#EoT_u5_xsQ3u91D4N6$!fPj_{l|NFo6hS~^EUTPvlML(0`1Rk_>zVC*( z%JMug2>2{X$`X4sb1YsginuXBA{xU?CW>4#fkcQIBY=1+j=4e+#rZizVsZKVon9OD zc1NUC=~NX8^VylArOVPU9nS~~oY|C@Si4n$LCXaD`ErTbXgBce<*Rt+g{x9Nv1D4v zXL0lDB4!h$#(LrMdqE=$iYc_)G}@uqga@%0%WoI7-+9;TERLwSAYmfpf@Q1Tz;<0V zpw`HgUqX1iRG;>#Ne|UT`XbV+95tD7`1PbHCX!J}lL}p{f@69D_3}Pqy613$<2=D(bOtbRmg*Z&}1`H!R@qKL3Q2Aosp<0lV8>5hbhFNd6j&-mGiv z!%mX|%yQQ%RTlAC8Viq}lKLzIs46%c_TZ+Yiq-CirZpaf8@t8+!o4fr9jx1-em=9xjr;a_{g=6V3&RnTV z@33RI@NCI|n?01vD^9h&5$(MUrAfsLj<#v!XpkpP^%lGI3dtVmZjn*By)`Gf>2ujXZ&aGuau0!*SvJTjL@6tsWZnJzM#l zEWV&*+Tmz`wNeRBzi`CTL;Xfs9;Y2`6K(T7OK!pNt+_{F!} zA*Str{kiYruA7#zvJk}9Mnk>>#Ue^oLmot<<;Q@YZ-cHJXzF#rJpr)@LBAJt3}g^< zT)q?w;+B)g;10zQ%g?|Qh=ZEEX0wfcy@GbLfnK{VCEeVi1X8m(k(R0MRQ@fUeQQt8U1PIh3f^N5ddRuv8o4Vtax!Wkc9*WX6diAv_ol zDUU=YL!~dqibHvFXbAZgH^Ud!kWK{vlOhNTPnV2F;12}_4svK|c|S1t-Y_tl-441v z+6HL*ydLg3NNc5FGcON)$brKy>U(?GuJ58h>S8uiz)X5Uuzg%yo_XOC&aPb$!M9hO zI*DV;MF}ubJn2*DgH?l1$|w#_Xp!uuo0efCAT? z5IJxX`FZ;Wn6_^q<+~>?5mcsvhTj$rJ31f6ufOvZc>K&79(-m4@4ELm+!GzG9@V-@ zu<2u?){}!)YEhDBgmf?r7-a#y+Xl>#B)W4OBBgga({VW-heyk!p+BT!OFr(xv+b^F3w+g3D3TG9-(*~r&m|7 zvQQ9s(|9t#ptpxXoA4Ho&|1lQ3{Wtf0@+kR{m@Uo-pa)S@N={ZmqhATt&Z(_OE#ht zPNjU@j59rsrC#F!VUH0H#jtvK3B5)`k%WRF>@=I`3_9|QYt#$c-%+S7_cZL>2?WAM zt}BroZ@%e%V+zf=4+`YwT&`}lND}>BdOPbQQH~IWaUwH4Y&Jd0AKI&|0w^NLrc5lx zX#GnqqoIx#!INDB12WZ^g(yT|Yfp*pl}i&dMDjpHk&p5_+-;a6B*Ovm&U@`mNxbvE zTk*I5`ZV6SsNoUj}n z4X_yZV|8f(ODjw8M)Qcx&Ps_vKDn0`TlFeBjVh|8EmWF&=yyA~{q&r?KfY83&GjyJ z1|wkDL3>2GQV*J)p{U#+UX0=5)m_y4z)i;zXw*51)p2Alj_zQHzka%dYfY~-w}G)H z<~hEYg}2{#T71uSkB(=qb+NJ0#Q*lzQ8^!VCM=>|IAUy`pP`BGbzfZ#=UHZddfDDkDaw{{r4tC! zMM(@M)kt}u>*Agi7%R26c>@0TY@)E2Ou?g@US^2pP*ewyS#;+tqpYg z9c1DjEG*?<5uoS|qgrai@@m*F?a8eginvi}j^KldR5FA|Uo64x)kK83KN#bV<4FuA z7XI^>_s|)5;PEL3-1caI_x$*cc;o3sam`8=Q@FadgD7URQieSlUv>kPsCTz8DxJLQ!6) z*{-bE9~3b5z?k#|i`8lwxU$v2 z)p8#Z!ac}M@cE$|x=hNbTuxQNbzxnjjWc?+2URR5F5IPsc+qma$q4 zVq-_giNzR>&L!}FeqjsibqygmGxS)jyMFP3+i*uQh4k#A+CP{z>~%1lDCQOqKc@#QQ@kEJ0V&dxE&6dCkZ?L%9Pq&p#|DrGD}Zx0n9l;a?}6nTW>?JHOBgG3Ada+3{BI~ZT8{yTGB{Yt9?9qu_C50 z@t{`#Y&@VWAJoWrDEg}*uZDS8)Db~}CaD1%RABbBHFR5kY_5~6p3PeidQ zt%fw6YB@-TA5}3_9WVS}=`jwhz+T>C$lTjDmT@wP!`gE)#q>nV!A&{e^B{w$2vGvk znrgz0k!*@NRTJrb+pLC~Mk+8^hA7Kl-uh0-M&n8ej27!$PPiQBqXV@OSs;p7H1R+r z>svBbr3Nd#@P6a%cc4=1W4pS8SDaqOz-VEp8?sC*RjXJpcktYWCcT)%OD`VwOGzYJ zt+qBU$C&|bf_%({V>v&T3-g#;y#;|x0>My5bYZ#fpm#g>3B!IDrqP2j=%Tk%#_sk8 zb}M@bhFmzjoI)s+K&W^O{aPK3-3s>V4FQ2#ehr1095%Pw@Ps@vZhqp$lI*0q<^*@I z#8Do4@n0X@5+feVN9V9HjK~a?W@1zyVXaX|!!+=^Bg@K7D-y-oOIvvU zg$-Of+e0!CMJ^sjA{<3D9mSEwc^o@_0=dFGf}yBfh2=#gmo8=O=_jcrS#as@nM^2zvSdqZ~NiOXUd*$zulPbBUAuQ)%y1LK7fn3 z#CL%sI38>^a!NZ^dAkv^EISoZ%%MwA6Jvzc zg)scd4F2G2+b}HBTTK|01v1^D#GwU%nFZ?QhA^n~;Ia%9kEg^`=fcH0N*iNn`WU%n z5QWsNKwOgX5YovwmR1&U^w=u0`FZ$QN>NsG&_ZKx4?E?u-1b4L7ly;~%s37ucZG5} z%qZnb38hL|daYtMi(`jZQ7EoRDaBw?6Gs}(m@+XFimWw+Y4*`;HPx1#nWIPNB@YrY zzd)XNv1=dxneVmo@tAlj^N?~1vA$QAzz{;Z!3CcW#dHFNB*(h!>c?p4L!n>}20a)g zyZZwIQJ|NE)P&R=<(Ay>!<*VsNIyY;30Vr!JIoH8DYV6OCb@26H6=XY98za#=L8+g zDcMaJ3MtFQ9Y4p(+I71PiZa_jTQY_@mK_7L1+}FF5@XRJ$sQcgi<_8Q9t?^DaA+VB zXI{)?JgC%$D5OI8@mC+lT4_hP$v3RdqTlMk?I#*_h!?L^u(sX8PLq?bf#?AH-84k8 z#4nxMm~yCGK+%@r)`c)u4=rNu*eUqZ1!K&N6j=|0@ zs@rQ=+uT4n8N>~TW-xR5)$oNA=#@56-M)fObr0K36Kj>aj8(6c>L^v+nDpCNSt`O9 z*5FT0ko2YS-=A*_oz|j?;MfHN1_A~bktTHAg9({`f{gH^*XMg?$|O*1l4%?ncVi}+ zLOMeUoFtOTIF21&!jYq^NM`f!1|#yAM|wy06SYbehG9u*L!mVyc4>y%8PZ{?hi0>h zt=&!RR?C9mEzaa{c;y%hvn!%+D;d?U2qa^8X~si=4O&_^F=#jJz!;*}<8si4bb^#@ zT35TF{r-FIk-%V&L9cgO7_V3A0t?|(irqbHF7_e0cu1IhTzFOJRoAB8C-F%Je8fq9G3!=hBjS;;AGweS~vYs(A9k1_pf^r)Wq-)zG0M0)Z2mqf?rn zAG1N=wI}DWa`com+<|yf@Mi&zEp6*(W(^A8nZu#f^h0`mTSH759aOGfKxu1BeE1H{ zgmCK{egu*9yr_B)yLD{8cpj~48D}l7w-Jk|A_4u&fwuc{Rk?i ziLYK5W0QC(j*sc0L})qTwRAbc7;clAx3ouiHke-jHX+^?;*1!V8Y>!t_Y2*Xt-(cCc65lS_)_ z;E|PMm@6C+(i3|F*VvTHktH)xx}qBm>J_vwYS*NRZ?zQ4fxR<_5kvv2z9_^v;R*%($izZ2#*2pil3AMV7V5nbymkrV3sJS3GWQdV=vM(A zLfc;0KD{sBVMwsp;%A)wI3<_*a_$JOw-|HEt^FEnYJBQ^j_6m1bHQ?oc4;&oVgDga zvyswaC9Rb)%#on;x*UIuMw|53fo%Sjzqm7Gkce=88?jiU#TIY;bi^Z<#p-MvZ@6g@ zl}1y>*c1ut4oAo&L-1=JJpR%e&YatWuDcKm(n5g{c;1v6+Cu{&FA$;-f;Ge)i)q|; z>m5kV6u}*vYXATs07*naRN;w4;R^+zu_T~+28}4aKG`}`<((ISU+PlYRT>ykW_4p5 z8yBBOrPYGl)y3VfzaMj_UIV?qE6zsaP8;iIAHmgf4{I&upK+u(hwr)f2Z8!Egcla^ zna_R+Uw-mgY&G1t)-c7wnMOMV4^j+4OfpFrqj2?vMZ77Q*~?;31lZgnua%4kkWVEr z6H8(y&aHe5$BwOF`PeGLiCF}Kad}_$K?}ovM|c!`rW{Q0!!$UCpPHrRX7yN@P4K1~KhGNvE4Wn9~6v}B>nc7U*vWP(dX zrNn*^7;eH3ObLw5or-8mQ87atbo@REj6|3MyaAD4Y;@YPAr?;rFCB3>`U{K4LVGk4 zy;e?Zrw{w|7Fsfct?#5ttAi1f>M0bg`+7{2Dv6w|@Nae_Qw@p(5z%e@lPvsfuL^at zmB$}<8nW=yNZC}nQq^VQz$zXgSv?7kUAuxx|u!ogw1h2oLC@}4O zHpE$&)Wz|T5Ak>spMT^GuB=l<-4x=N&+nFURo6B2%svu9KY}g|hhkp5`qon@96g3W zGy!igD8M(qZnparKbEnx#}6$)2U0b7;LN^OE1}tFL+{qmDX(LDw+dSNoWAh{ZoU5< zFj`%h;{gJZFuEHT@YI9fz+;;&gaT3A_r}*C+izg}=(lm`T|b6Dc=!sw_1N>ge-zVhT*? z{QH6IKW}YyT%DjeXr}GTWq((pU>fqZ>|<;M6W^TaQ7}KxNzjN=KQtm44CMAWXygxU zb^|^IlH{#RWq101u#_4Q=*I;iH{APjlXh5HmT-wlipd2vgrX6&x;?DUr}4cfXV7f) zkj+HJ+=em9TA6k4R~|o$OV^sxi{+#Ae^ZK!G8(otWJ4~*T)=BrkKp9VWANv)@I};= zMFQBRT%Bl=-R};dxlFME=+jV>Hq5;-hTSI6Ypcz;K19D$gDc?0%4`~Me&FXtMcvZ+ z@QSpiALqXQw|MlKJ@_(Ny!O?%BBJ-;Klfc^zvpgz=)p61{-sT{bU$``Blz5^;dk?y zy4*1Kab#SYDpHqNNt31^ful*hWRoF;LkTQoV<^tXQOKsTa{L754;@D!J_F4ck?FoM z>Wk9*px0Fyo#0hBgmoz1EwvVQt1Z-;6_l$xsMIPFoQ3QRRu8XYZjRP!aW!BuSSIOG zEpYJR1jcyOLBH1!Y*}0SWL=hesZ?B=Z)pKO`m^_1#K;qP#Y4luVB=VA>vEu&F-R{Y zTsIL4$hek2NCIOxQABf!57SL)qG7=06n7C^lGUp+EGL>YR7tfL8N^aim5Q}JbDzX$Bx5IqEc8nDp7oleb9in;Mhd{S_wN_ zTjCMXGj%kEWZBVjD~RKV<`76E(XX{pS$_%Tojn-t34Z)t??UA8QTRKYD0$%u1hMhR z7x4IZ&myvN5=RalLP)QnSlh(KWEP+L(i7OIo7nA7&|zjUC*t&^1&Nt*VJz6Cfns{H zPbE@<%Q%mQkS74Qk0rH*Xjn}(3yCO}my#$_1M2V%C@dd^KROG|7n0o&r)ykPlD){D zkgi-Z5j4B#wENhuG*I4apw_IRTrHv2sEJ1K+)Q2qBcDHnh|TRFKb^30zP6B9u(`z$ zlVj~cuZ?!AhIUJr{n374M3lOX_J{BNek+$Gd0gF!42-MgicBEXsFQ~1E)i2p63`W7 zQYLe+hyGCcMH^#XHsU^S09`KFOa=@okIIkQDSsSdlB#4BN$KT#4EdCUixTdzpLX`_tKKXgu< zgICf)j4Zb-pY*X;bb`|%O?0_tQW1pV!3{Uwgj~KLWt2Y>RAnh4Bb>N(8ZbI-v7KfE z&T%B4AL*ijgz~DR-!+51xqca!p8hVbUR%R!?z<1C?s*f;{!n3&5(%t5{xv-J#KXuR z{T_roCVWN>N0LGO{go=d`kiays#NRfsOm!mU0#s-2_kC86dEAVaU|l`RCia%V-p@) zO89`F+rSLvGv^{AuaxxrFABwc6M0;LoQA`FsKbcU8``wBXIlixCfm!$?dxI zk}S8BDNP(wQj7@b&*KlE*&ZMf_G4jr3Ez40Sv>LF22zm#mf}IQO;eVT z)t2IfEGE4;b#zgBlhIH^IG)1H%sjl&7((%&pbB^+Gbkp#CbVE!UfZz8(PbBBuWaDj zUKPVhM0CCGTu$TY(ZiDIyPH?>)h8ar;@l$cfBVk@i731yz>|n$=h-K*_S|=nUp|H2 z&NZas5oG4__}CYpz`s6qMKDsso*U(Xg@9)y8CFVIjeQ0eX%m6Zu$1O-g8EFfMGJe{ zxb^lKy#BsBuz1s35DiAKb>UH5JM%13@g*!CJ&EkxQFtObDyu0$j?qx~=YxJ*Y?b{U z#lV!nX!o#Hsi9PAqS0xhRNW9eX5#Yl$qZJOk6?CYX`kD{(zrk5XsFz zAI(l&>^TBrN9OV#h;L12js0H0-do6)-0`v_H(|=xZhCynbE!O^58&X+-$Eg1U0w#B z194~L$5c=IDn(!-hn<1K@{c1xHroz@mNzTs)rCZew{iEeC6DcNaT71Klo- zKj{SxWD*{{@%AI&(v=(hL?(yyY!QKI6rNxZ6GKP8QWh;*Zzu_EXyWpfi}>e<&*Oic zEx{LzBS>Z>RM|^j!jcm$~;lRXRmlw)F9B0{CyWGkyntLskQWaR!=k_6y?BV?n z+=$oy(9gk&{vf>YDH9nOIRE%Z(YRE_!phCa%rh`%WWq+36*gql*X{LN;_6D|wUkn$ zj$~dA5=x~y8r>$!wM|s2btT`)z*szr+{`?}c8?);$HTrNN<|_Fhl$8Ag=aDv=rR_j zJW;3DLo^maIuV!6w_L1$`u-oV;<1P-r6v~IgQ2L=Q7MAl+mT_3ATQ~v$si|BgnGDT zKTvND&>nKpr{wa9bti_0SQW~>Q$6M74e|7pN_OayHV*6p2tu@uK`D+SEP>GiE)yVb|)QURe@4$qyvgz8om z*|--27jX7U9p$bLuc?VKWqllw*YU<<5xnzNt1w+2#KJyg78VhX&ma&AVmNGK*xZw* zloq^ZZ4b|$yM(8<`grVW6YYr$agTw;R2cba6wh5+!)+^Z{LpPj5zHj;!sCzQH9z_` zEWhGjSe_uX;Q+PskKyunA4GEL2r`Kj(lbf?>$4?%^e_JgWy6PD&?6;jr9I|!T6Qf$ z<8^DWXtZbzWv9W?jOYSw1pLGUGx)_{{(ZpnS{N=LywrALBMmq9w!eYP4}TGJ^EV^A za2)P%c0VxKFmo!^>v6{35JuUoCPNrgfx+Ds10$PCN+~6o>k}XN0V^2^DkQ5%6JGGOas$TA z&eY1z5G)ILFs7G*`}in3yEwYABAG*}PAXP&3~Nhq$^wtsgVTQTr&fCnrd6@KQoFz&ii~*b)kV$gzX?p@Ne2S1L}f=hg)&Zn8;Zf53sVF#i?Qxr{*Fe zZm?DB3d|y$UBcGYb=1l`;!ebk^_88b{JbMakK*CyFNr&<+3n-jV+FkaR2KOd0hw;h z9Xf<~ei{C71je9-VW%S{)S%Tur(DLBOI0Keui}aGm+;s#=fx!c2VQX-7D6QS>|nl_ zL-Ftoax+Do|JD}~DlXyHH~kD;n!1g5&OL(e?lu-)@mjct1GtkZ{O-s98DD+yo8mF9 zl+1xP>89-E2+X9I0{J5pgy03?9z%{4$KPH9ANiv<Ymx0{i*H%tsk&eK5IbPx-=~^i=b-M38rV9v&Q{v_eqNVP zHRSdLilxbZV^3#NFR}h(fie@AMh*wzAT625=>qEGg3lQp3-m++P&qdVa8hi>iQIJy z8kVET!)XuhK2d~Wnpod!V?LjUrG=pNhPZU?3L@lEkOFF$LZeNmbJ(uvLg*nMdM;01 zG^bM$Sxz!A62-$JZx5p_fI%Wo`}JKkwl;)k;SWYcDX`w|A`tW=5mX?<{L%ulb4A&h z`y)v-UOI!TFFuS{zU_lRAPl$VL2KQx=Bp(f-Y_IE>$ zVr{@B-)jzD+oZ5`F}CeWz~KwcOF4u z@iwIA4oP5en#MPEGU|!A9LpwhfcU<$sb^qtw^6Rtu)Etvt5-vLZymeUia?Pv@g(Mp z%gANt5Q%b&u9lu0y6_yO(s9H^Xq;;V1EWD-0!=Lo`^w)hP5DrTrPKcG1NU3Wcu;Ov zi`uPv7i&9Zv>J+vX-HtW#DqN=4vXj-N3#T8Ra2mE zIdA66`-SU9w^KwWr$Kh$B2Hj9|G$%cIJ)FvWv}4SRGAbAQQ_B+DmJfkiJ3A_du3&-QEa8t_wuKT9tQBU^vaU+$?0s$(D7DY$7P5?b8b}y!O;Q zhP^JToe^@Wq^RYEeG&AAL&b>X`(mrMj}2YQYp=^hl;yk22RBj7UaufPbHycO7mpwi zO~Ep{Qg4rWBet3t)ppSBjG(u=2>V0u#9}fC;iO88LNhaPMMx{~!}5m_7&LMAD}Ro| zuYCuS$8LqYZ=kz-K~yOHnR$4N$MKD)p27eAz^{l>V8>LKn?ZiJE&QOKn<8+@B+Sk1 zJO(+TUbhLaF~ME$EZ`%*@o|`*+c{L1k*bW`-6K5z(0@U1%fQ0QNu&yg5C~@^Fyz`X z`Y^=KxUIgoS2@D6lp=v?hg_iwH`X<5SJnkV%#23=y@mV|ve`LArIg|peI&B6e7QXI z(WplBpZeha7WG6maw{~N+IO&4s-oN&2-le022u+X z;h=B_h$*3l>To!~Ub`<6o!ixx@MbxEiAR-gEk$;DqfSqWuFC-Sp>=L|r+m5&Jm`49 z*an9Of8X9&@V2%WUTmC2M#mOZlX0r47JB=oo25!MCph@^Zg^yK&ur2gjL;b<oHnEM|W$z&lL8=tv?uV~eZCOpsB*SR5Te$1SdE9+0kFd{;QnQ6@B#O=TGH!pv z{m8^-P`dIgLN0oWs8CmSWgbDZPDUin1Q1L`VVE?MX(5xJM{4N^0`U|k)Xp**Agq;$ z-7#5v^%~6nKx%DoC?xzDZ-58QWsg>QXLEc$MhF^e=e~_eB!i{9epnh^5{iQ91x(zG z&M|)LH$H-|edBQn%+5#+P*`p^W6IR;r9?XLjVJKL7e5RCZ~@ts1;l6PB`{o`fP6pteK0U614N|}Ld6*vybPSc*sFEW z9n`S3vyPp;UFq>s(KO~}7m>>q5REAQI4c1L1~2wpHjY@7HrvFOnJ`Cv^f-d9H9@KY z10$6TOJK;w`K(o98B4m@gwy}fVHrZ@lS&D^dE*=Ua8TKI@RQy{q%<5eo z8?`n{m6qJv(HK=jd`R%&gaQIZm(qnLlr4ZfT_Oo&Kz13|H|cVyr{wgf0fW;XZ?^8; zesFMN<&;;Zr5b8yiKh`;B)bPiNRlAaCK!)sPNGJFl+EPkyCJY<>i4pga{Tt}(JsHI z?Yrl7dqt3ed<_1abkr|2&R3qE$8F0AguE8qo*>5h2v@I_aMusN8#f(0jcZSS32t); ze;_2UM*$oCg0O`#mPHp_6o2bVy3gj95T84YV0s1?my|<}$NjJ@Kkr4138U!u4|KZR zO3BcI55AxW9!)_;+ywpTJ&YR{p|?87-}N@pnDQm!a3$t}eii@x*?+-*`siOHkqBZ$ znNU+*1k9RFh8OslY`)bvoOn6e$9gPyEg~Q+47D+S_am>zefK^9m+L5i5GIon%+|Ab z>Khl}4WuzUzld0_C`K=|QJZLEOol^&g%A=ho-H0l3N!7%*sHh2KCRQQVry>$<#Ji3 zSLs;h-((Da58;mc+{n+Q1SIJ5QR;_*p`+JfkHM*wj%bWf_%K32_NB}izxrk?9t>kV zGUVnQy2iLl$a1xdW}gfwq9rxKNM*P-k25gbvc;{o``D_rv0ZJez=#A83;9HPg@=v* zIDsIC+r~pVZ!kxz>hlNsQ%=b;{il;DrX5*TiKcG!{Y+vDJadFB0b(nn%jC*dMd#0x z|7NhtluDIJe619C;O>TpyV+**tu%2Jg;o>B+*n`_YFZ}d?3|pCvFHM#L9f*Kt4nFT z_VfbwDrIDeh@DutST5nN*S#5UeDysjJ^LVx0XfZHIZ%GT4=%n}M5HpSv8LBY=ryad zpvx8(5G@=+C|wZPg*j;05EVARrYN~cFGU!=MF_b4`s{4Uz;L;V6=O-%hS|Cbv)x7P z##dv+Ub0@6W#`|0j?5U%{BcFk#4XV#N$X zaXz9BfP20#jo!hskD73ZERh73FpqXkxb2r^>B11FM;9l2IYGYKCkz?0&$VR z@T*dsaCG(^)n*s9W*417O&paPfK9<{Yq1d zfx(}ldW^16aTyp?h7=LNzxWULSlL2CusfV~^xFn@T0@b?;l#-@lt3@n`pHNbnOIyF zJe=Az`lh_dYt^PKcsQbEI6~FxRKaaf^9*5EI ziDVI{IDW4m6F;?nS)=2cvHP~iDB|4e;UI#HNJDCU%{7Kcrh#L4q7%IR{v&wv_ntsHRzR)M z#pM@yAGt(JDmJr#*lYoTa1tJ`0;gI!OZct?ftVQulqo9V=$$Ub*!s$ftY5{o?KNzd zN-|N+#nLF|7m-aXRYMuSvm_g+VFXpoMYYC#9rqY2W9$dUrKkVE zN*=x&E>8i2)&-Q#ehE*0;}KkWiR?W>Aw-Z=Bn;{QmW{;3(Pn52(a}xRdO9}u>OuyJ zgo20(>70VSLHIl>V>llKwe91lq{mR1!s#;(b{;AV@P=|GLh5rWh^Fl)9miJ5Fro^g zGLyW?wk;WNT^?#jZc})}14`#81r#dhsZ2l#9csX;!07g)PLD#_+5#Rd!=kfPn_!12GaivBsgoz$mo9r80Ku>4A%dE=1 z49hcx1mN=2qEh-;ItOL)!uN^PX6|-8COl&=OfN9MqT%pd9%(I$bTWg*#bu;ta>!+i zh~^7Io^pBoDgzBwU=VgL&38aSl}5vs2yOG(v_xNc4_CLYV!N~{W8G{tg}K5Ka+!IA zqcN!vsFc#zdkBSt`+*ViYrDb`vf^Y6pap22wl^eh_q+OZqWC z8$i2f!fVmo#)am94jKmD`?K%Ds}_oAZeCQh-iaFl@{EH~XrYiyd&rS()%S#@mI~AK zK8wWCAq0~JAqbhh8rrp8xVhD(tc*V@S&bzODX(r1)$4hfIfUgznwJVW)0!YoEprG@ zGKXL~fxrIbC-GPR>l^5rn#hDk{Olh!=w=7j#5TO=)XBD1a4tD{7VO)&kR{yAu9PWe z!5_*HqS&*4;+JLM%uE(b^EsS2TEODMjNI($nF3;TNQz{jadb|ugwaEf??1=2X3+ap21xuj58xht_`EbQ>EogQQ# zLnWmZmr5#y$}-Mw+@0H+Zy?dM{ItX3P<#Yi#lzWu*nf|igwPg#o?~Ul27ottzsDU0 zOD-y)Yx3`eO%PH~AR+%A1H)|=lBok3Kleaf7BN6(M!)%H)s4JNfwenAY{EzUt zN6({SSlFrQ;P{#W8wpSflTxg@0+!jkB&h6NqT8)r z6_>7EL}{liKaUxMrBo_8D}f=p1oXogs=z4BW{`-7q?EE)Jq!qv?TQLxcVvikCwc2i zD_5T9(87cd?qGDtE#-ta4FAUmZa#(w|M_?D@aHy>3}+FK_@!>A81PQBjVpT{k=dad zHod7sk$_MVsrtrWPRbe%fo#=49v0GCskrBqPfDXnWf9psO!;R!n`*wvQ~;FixG-pK z86A6kdOdVq2@E?t3dc^_k>(Vn?SueGmQ37=s~{Menn*-ak+9Wg1J7n%O}U@GbpQY$ z07*naRGp+Wvuy)}s?JAm&-A6Kx8-#Lt_jkKpm<@l46^dv2zp)U^-Y{wh~u|E@Bz4+ z6%4AoGFl~9!b^xY2{!xyen5f0x_SqdYisD}9UQ&sPJu<_ii_~Ya+r9D3-iKl8t89d z!uHw)k)ZUZ3W8Ph$UuO4x>QSKapS0<5HzVc?^JW)cDu2)iO>AiU*fCJuHjO(g`r8E zF!~?45cIgDmn1BR^xu6b3}NLWa-qh|9-5WXWK^CpCrEC1n6+gxrm$+{qAV6>akMy# z)s;CE7K@0bXOK*05lv^|4JF|6QsI&ZwkM-nmQuWPM6I5IF&LmNpCe?)K&!ontD9F) z-rE(oVX9&>Fz8Vp3`A7(-EX6->msI5%;yk~Qa*_n?nH(f1S>Y`9aw=VVzH#0S7So% ze2-sa@^sqUW=027@BtTsoM-;h-O69$Q~&kPVU+wxC4$n_vQ(({y0~2KK=0E|$}gi@ z{uzz9;POV);)jQZJse5argx`EW#R+T6UhvPKu4uMHfw{}T3?V;g}U8naS z(r4^jUL6GA^afirq-YQ`V7=Ot$qSiWeSIwIMAWCN*LASAoXs#%=y2r1GWRyel@Qe7K+r62a zP#Ff5KLB?$hKo-=hOd9=3wZ4EE}mQ81uX79`WS0IVPEn<)thbU!=#y)=f?L_O{Y{g zSCD-69UNbieJC1ZEQdV|92bHCpO{e2_T2dBhWGBvM&K=#a$M?NuXXj%s<+ zGcf3(NPz_^k8rxw(|L*Mw&+?7Yvn5_?d-{TI2lf%IJ1CMS_KB5nLc3VS4_piOa{q_ zPqyD8n`9CyKN1jOFf)$?0hFBTxpZ_IC1@i{mur`90sK%~2TqTaqBoVq<-dnt$De-U zL+CsMai!rzqNf9;Mn_61Dr#^!k_?3qiwEHkDG43Il6m{fHX5`-R=_`X@TbPK9#zK* zqnV`&gVnJhljW-l4B3l_*n$HvQHSyRCf^PQ#~;ptnAqcC=jImz(_ko*C}T20e=tI; zJ;Z=Iw)zCsR_{7dXQy0~%*LND(xvnrcL|e^fx-O_eF$UW05*3T&;sg`;Z~Yu++4(k zdtP}IZ~x(+Lhq$#F){jz&+S(uZjP7-RLQIFN!B&P86^E)gyT^JvUw2>)7$}>(u5N! zTzmEjV9-Q7J0raYODdLSe6QRt5&+z4F~|3oB@r`5APkq!kMDl@pYY;~FXF+o8+d-J zE!%l!3}#8{yF}t4G+G^1%1#lr_5(x4!sNsAGIJr|_X>$=j3I&n#c^?&2Bmyhk1}I)?Tn$+2y3`nx{T7!jsQZF zkt7P)MWizYgo1H7_$Ps>pGzYh3m_Q_z~B|ywV2~n-l+&X%V zZD^ChB@3RUyn&`hBx6`E0?o}?gGXKUE{-t&27mHr`4Z)7OI$68AFvZvO92~BO+fj z?Y*r!4rhtyOsSmAqriU$d~x}%6KYS{Mlpn@>xSTF>RrN~>9o_|Uu;cik|H{|b}1*6 zOQK6{CLjd~*vptYW-}?Nk;$lIc9U{Ipza#NnugQMVZ8Gv9>5}{XDVCJSWbC^QdY5U zXFV-4_uCb;xfeNc7^y-Y$QBTeC-Ks^A4TQGGgvxu6k5oSII&o4UJ3B?aETR=n_B3; zqEN-9v|3^kGvx|~p?8}2)@T0)yY((!C{^(7=k`S1oi{%(E@mb|;n}=8dyDI@AN5}> zr3gRau1lVeZ;U(cyb(9tcngBD2wIgIp84)ma2p0rEiYkZaRJF(Mglz&&ms~}Nnp4+ znX~L(qD5(&fuhG!Lf#Gxj$f%2M#Gq9t0Ea=cXwCLS2C2qY<2;eY;iv@2t@3SblDTJ z$H*n42nJl@#>D4Ir9$>Bu1FfO~1xs!k^2hCT6rExWG z2uB0jIv)DYNAZO}{w9{=MG&UWj6stBUaNx(rJBgw6DmUGi+J2ZA{B%;=z=-&U@}zr z6IxC&{}94VzL7l-rh~n51e>RKB?k}hdYfS>g>0&= z(=W&rWI~HF8pd$bKSZ+8xkF1MH|xRkRdq6HO=L{Q$V zi%$r*!g3&82BOs7(p)H}G`!~3uftnke-GN1o|D_l&4bN`)f18fHW+l!Z#A)XX&shn zVfDl@gmSZ}l*_2Uco9p7mk~R@ifExAP5*GvRl5VhPz2zncr`cbZXej?F}q2Ic5@0A z#`^iE@Y0z_u~pS^Zo7h~uk~el#t|%e;FGa#+p9VJmIKi*`F*7PR?|ih$NQ9^4J_TadquHzVJ`~1MWs0r&o?6na{%;A!mce_bCB4GB8+Ku>7G& zLAOguQ?F9?uqaxs0D&ZuF=I5E6|8Mt5g$H6Qj(Db^0|2=6M6UpVOu<}EhShm7(gMP zMJ}6^vX-h?95)WSTmTvvQSdtu6Xf7mL_ClE-4g@Kny&%zfw19mlDQeBkib+Fr4-snQT!4DXFf@7zc_X z&e&JN$^N>1Xoy`WJLMD)JL#)zlsQG>sJ2{dqS0gzqKHkBU8ssNwPhETarlH@OP_3m zJ=1t32m#)_)Bt9gL4E=WJ?yn&{(yX+`E&rOXdLf<|9^nLvIf0X6QOJ__*@>PYb2#7 zN5)hOY&6l_-NvLjL^=_{%I&9-SUC>=?5q&OTw@EvUKWG{l@ju?JEYlEr{A zHF&5=YxeQf*FP(en9HRazWU@Eu5}Fb`pl|?(eP5?pEh4c-bWiq>G1ejs_~NZTC#gF zpyR#2{&RTmPyPx5psv$M%pch^>5~yIUwj%5{^MVu7>WqB)gOr>mPjL`|_MD$8>!l(m1(H z8Z)_+Vi!&bt0C;XFJ*9_&QKcNx4g0h<)rQQLGKVfbAUud!)so#gcGNZA~ZV# z*EooFtBl83yLDBIJUA3tk2f zfsWP)-ar(+UJYly{P*ImeQvLW2hY@SX{RZpY916;uLd*0%a8|ZI(V>@Rf7+Y01f>5Qkk?>DY1qsThND{6QxRR4_7v>pxvy)A5<<)g)G^7Ia!)oCdp=9DWziJuw;vL zCa&x*%ptVNP>e$LpROcd(cW*tvnToX^|-}~6lVP^Hc(5!@5!gB(pdIdIb%8qNO ze;xn&sXxQH=c-~G<=osd{*=_uK0*QO9N2|A)b@s4#*a!Co+W~F@b`BZ`x#%EZ93y% z6@bq4?O@Wx?=6t^u_b}A*Jz{G?t@@8PTg4ci3y{ODV2zrlv1*9@hHzZPTgo*>sB!7 z&Y-7Y-gH=kDN2PdF2ZQ<>+xeQq0}?Fx*LD;+aJWFvMG2apUWlFrD%+}A^rdhlXed~ zS2hq0g^=Jla`_ZNSwNU3?-N0f>a{JQsCulR$}|@3;plEmp zg~FUn6nG8@z*^tf!J{v&qdBPIqyO!fF@Nj4h z4C7!3W;g(=XNpR=-rhmHkb|Fx!^JEW#F%tnP8df6Sd$@Q#iJNR+<5%Y{s6IP5>H>g zfETW{aDID;J~!Tjkt(6-B;k}#_Nba~r^CUP%Za_0KEmlYeGfkN`=3A}l(R1?dkd=a zwgi|gO2-{M`sKez=h_8CQ?p2?(@5lU2u9NI`Dr6&pxbMr(P*I49>^ubQ7;3A!5|h1 zk}-7Ale)Zl8J%_$v2X;bcpSOpEJ6{Ip1d$eCR%+8+ZhrV#7ZR-5qNzbjE#Y8zYR9> z`bYwUb^{Cy=bUJt`mGMSFK$|xzxl%=hv{lv4wZN?+(26r~d#Giqq6RXRQgq6L<)50cI3N4sXZG#wWDDCeQjMBz%+z%0v){(^K~K~)N&TaI zEBGc=J3Z`B>8{mBtcoaU% zL^_c|I2VT&45HiaB6Vm6o`eq?m#g6vLeT^!zOcyAaG}Mel`j%Pq_`-ArAPkeBQRS% zJhffHrH!7bqHNYDXmb$2s(zmZd?09{-amVoAVURBh8Mr^`@f0z{?G$ziYb}d*@Ybh z2IGS?*bC2p3s)ceiXdt;nGDi1dC3?I;>nnBj|S?L&g}FAph@@t^c60)##k?JhZj+pEg&?ewQ(JpXj}|Gy8I=Y zLvhS}>V-{Q+v#ED=or8DpMDbQg&&1Ao&nq;fRZXAuEu37%Zc-NWMmRoSrf>y~}2ttZNjsoLzI z+8T)BU9CYQcJ5qwpv8J-pF_^yg)n`NxuqPmRM}-rR95l2EJUM0=z~80s@$|3J9>Cy zk?iKzkPf>+{?Erg_)Az!`rtcyi`d+m6l2DVs>obPU$dO-dxWJ&=ir!O`F7nq|O0mb_d&ViD)@yHCMxz2_ z`wCqB4tDxo{PAc10b0w4AA09IaN{fPL@b(>d%s#+L*wkj(6%ni;)-yA?VTPTzqoAA1Q0W&M6N*!F0&xH;vT;79+An<_$}Oi z+s*j7dvC*-BG5P9j&$L$?033bYq<3ELujvEfxm6RXGRc+#R0F0cp`#WegOuR+OrY( z(rH-K6gCDh`+a+Vq!6~!pN)sm!V!dK79c3}PzGyH`~$xE`7hyLUuYr{3}L(0KyyMZ z%n2ss#uFH6mr~9!Lyf!{6huLhOEtmj_uY<9{+CZ89LU+(Lgf_)B+4(8V6jW8N^K2i zzxq$ITw{-sOlRQ_$KmybFdh%l>9$14oElQxgRzu42n;2K#K55U2Lpq6r(85Hyq9!p z7XCmAE|*uBr<_VLppwZ1=4aE$&>+dHP!~k;aw*M;Br`gp=^?+peV69kv@B8^2aPS% z≺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 diff --git a/mes-ui/src/assets/images/weikaiji.jpg b/mes-ui/src/assets/images/weikaiji.jpg deleted file mode 100644 index 0b8a138d0585ab9b97dc59f270ddcce3b8e64a10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18372 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 diff --git a/mes-ui/src/assets/images/yunxing.jpg b/mes-ui/src/assets/images/yunxing.jpg deleted file mode 100644 index 4d060c0259d651ce61205ef57d305fde47f0d2c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14944 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

eh3E>*8cBI6@lKiS?o5D&wF?Sd*Zku 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 diff --git a/mes-ui/src/assets/styles/btn.scss b/mes-ui/src/assets/styles/btn.scss deleted file mode 100644 index e6ba1a8..0000000 --- a/mes-ui/src/assets/styles/btn.scss +++ /dev/null @@ -1,99 +0,0 @@ -@import './variables.scss'; - -@mixin colorBtn($color) { - background: $color; - - &:hover { - color: $color; - - &:before, - &:after { - background: $color; - } - } -} - -.blue-btn { - @include colorBtn($blue) -} - -.light-blue-btn { - @include colorBtn($light-blue) -} - -.red-btn { - @include colorBtn($red) -} - -.pink-btn { - @include colorBtn($pink) -} - -.green-btn { - @include colorBtn($green) -} - -.tiffany-btn { - @include colorBtn($tiffany) -} - -.yellow-btn { - @include colorBtn($yellow) -} - -.pan-btn { - font-size: 14px; - color: #fff; - padding: 14px 36px; - border-radius: 8px; - border: none; - outline: none; - transition: 600ms ease all; - position: relative; - display: inline-block; - - &:hover { - background: #fff; - - &:before, - &:after { - width: 100%; - transition: 600ms ease all; - } - } - - &:before, - &:after { - content: ''; - position: absolute; - top: 0; - right: 0; - height: 2px; - width: 0; - transition: 400ms ease all; - } - - &::after { - right: inherit; - top: inherit; - left: 0; - bottom: 0; - } -} - -.custom-button { - display: inline-block; - line-height: 1; - white-space: nowrap; - cursor: pointer; - background: #fff; - color: #fff; - -webkit-appearance: none; - text-align: center; - box-sizing: border-box; - outline: 0; - margin: 0; - padding: 10px 15px; - font-size: 14px; - border-radius: 4px; -} diff --git a/mes-ui/src/assets/styles/element-ui.scss b/mes-ui/src/assets/styles/element-ui.scss deleted file mode 100644 index 363092a..0000000 --- a/mes-ui/src/assets/styles/element-ui.scss +++ /dev/null @@ -1,92 +0,0 @@ -// cover some element-ui styles - -.el-breadcrumb__inner, -.el-breadcrumb__inner a { - font-weight: 400 !important; -} - -.el-upload { - input[type="file"] { - display: none !important; - } -} - -.el-upload__input { - display: none; -} - -.cell { - .el-tag { - margin-right: 0px; - } -} - -.small-padding { - .cell { - padding-left: 5px; - padding-right: 5px; - } -} - -.fixed-width { - .el-button--mini { - padding: 7px 10px; - width: 60px; - } -} - -.status-col { - .cell { - padding: 0 10px; - text-align: center; - - .el-tag { - margin-right: 0px; - } - } -} - -// to fixed https://github.com/ElemeFE/element/issues/2461 -.el-dialog { - transform: none; - left: 0; - position: relative; - margin: 0 auto; -} - -// refine element ui upload -.upload-container { - .el-upload { - width: 100%; - - .el-upload-dragger { - width: 100%; - height: 200px; - } - } -} - -// dropdown -.el-dropdown-menu { - a { - display: block - } -} - -// fix date-picker ui bug in filter-item -.el-range-editor.el-input__inner { - display: inline-flex !important; -} - -// to fix el-date-picker css style -.el-range-separator { - box-sizing: content-box; -} - -.el-menu--collapse - > div - > .el-submenu - > .el-submenu__title - .el-submenu__icon-arrow { - display: none; -} \ No newline at end of file diff --git a/mes-ui/src/assets/styles/element-variables.scss b/mes-ui/src/assets/styles/element-variables.scss deleted file mode 100644 index 1615ff2..0000000 --- a/mes-ui/src/assets/styles/element-variables.scss +++ /dev/null @@ -1,31 +0,0 @@ -/** -* I think element-ui's default theme color is too light for long-term use. -* So I modified the default color and you can modify it to your liking. -**/ - -/* theme color */ -$--color-primary: #1890ff; -$--color-success: #13ce66; -$--color-warning: #ffba00; -$--color-danger: #ff4949; -// $--color-info: #1E1E1E; - -$--button-font-weight: 400; - -// $--color-text-regular: #1f2d3d; - -$--border-color-light: #dfe4ed; -$--border-color-lighter: #e6ebf5; - -$--table-border: 1px solid #dfe6ec; - -/* icon font path, required */ -$--font-path: '~element-ui/lib/theme-chalk/fonts'; - -@import "~element-ui/packages/theme-chalk/src/index"; - -// the :export directive is the magic sauce for webpack -// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass -:export { - theme: $--color-primary; -} diff --git a/mes-ui/src/assets/styles/index.scss b/mes-ui/src/assets/styles/index.scss deleted file mode 100644 index 2f3b9ef..0000000 --- a/mes-ui/src/assets/styles/index.scss +++ /dev/null @@ -1,182 +0,0 @@ -@import './variables.scss'; -@import './mixin.scss'; -@import './transition.scss'; -@import './element-ui.scss'; -@import './sidebar.scss'; -@import './btn.scss'; - -body { - height: 100%; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; -} - -label { - font-weight: 700; -} - -html { - height: 100%; - box-sizing: border-box; -} - -#app { - height: 100%; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -.no-padding { - padding: 0px !important; -} - -.padding-content { - padding: 4px 0; -} - -a:focus, -a:active { - outline: none; -} - -a, -a:focus, -a:hover { - cursor: pointer; - color: inherit; - text-decoration: none; -} - -div:focus { - outline: none; -} - -.fr { - float: right; -} - -.fl { - float: left; -} - -.pr-5 { - padding-right: 5px; -} - -.pl-5 { - padding-left: 5px; -} - -.block { - display: block; -} - -.pointer { - cursor: pointer; -} - -.inlineBlock { - display: block; -} - -.clearfix { - &:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; - } -} - -aside { - background: #eef1f6; - padding: 8px 24px; - margin-bottom: 20px; - border-radius: 2px; - display: block; - line-height: 32px; - font-size: 16px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - color: #2c3e50; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - a { - color: #337ab7; - cursor: pointer; - - &:hover { - color: rgb(32, 160, 255); - } - } -} - -//main-container全局样式 -.app-container { - padding: 20px; -} - -.components-container { - margin: 30px 50px; - position: relative; -} - -.pagination-container { - margin-top: 30px; -} - -.text-center { - text-align: center -} - -.sub-navbar { - height: 50px; - line-height: 50px; - position: relative; - width: 100%; - text-align: right; - padding-right: 20px; - transition: 600ms ease position; - background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%); - - .subtitle { - font-size: 20px; - color: #fff; - } - - &.draft { - background: #d0d0d0; - } - - &.deleted { - background: #d0d0d0; - } -} - -.link-type, -.link-type:focus { - color: #337ab7; - cursor: pointer; - - &:hover { - color: rgb(32, 160, 255); - } -} - -.filter-container { - padding-bottom: 10px; - - .filter-item { - display: inline-block; - vertical-align: middle; - margin-bottom: 10px; - } -} diff --git a/mes-ui/src/assets/styles/jinzhong.scss b/mes-ui/src/assets/styles/jinzhong.scss deleted file mode 100644 index 727d248..0000000 --- a/mes-ui/src/assets/styles/jinzhong.scss +++ /dev/null @@ -1,8 +0,0 @@ - -.jz-compact-form.el-form .el-form-item { - margin-bottom: 5px ; -} -.el-table .cell{ - padding: 4px; - margin-bottom: 0px; -} diff --git a/mes-ui/src/assets/styles/mixin.scss b/mes-ui/src/assets/styles/mixin.scss deleted file mode 100644 index 06fa061..0000000 --- a/mes-ui/src/assets/styles/mixin.scss +++ /dev/null @@ -1,66 +0,0 @@ -@mixin clearfix { - &:after { - content: ""; - display: table; - clear: both; - } -} - -@mixin scrollBar { - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } -} - -@mixin relative { - position: relative; - width: 100%; - height: 100%; -} - -@mixin pct($pct) { - width: #{$pct}; - position: relative; - margin: 0 auto; -} - -@mixin triangle($width, $height, $color, $direction) { - $width: $width/2; - $color-border-style: $height solid $color; - $transparent-border-style: $width solid transparent; - height: 0; - width: 0; - - @if $direction==up { - border-bottom: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==right { - border-left: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } - - @else if $direction==down { - border-top: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==left { - border-right: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } -} diff --git a/mes-ui/src/assets/styles/ruoyi.scss b/mes-ui/src/assets/styles/ruoyi.scss deleted file mode 100644 index db8c29b..0000000 --- a/mes-ui/src/assets/styles/ruoyi.scss +++ /dev/null @@ -1,277 +0,0 @@ - /** - * 通用css样式布局处理 - * Copyright (c) 2019 ruoyi - */ - - /** 基础通用 **/ -.pt5 { - padding-top: 5px; -} -.pr5 { - padding-right: 5px; -} -.pb5 { - padding-bottom: 5px; -} -.mt5 { - margin-top: 5px; -} -.mr5 { - margin-right: 5px; -} -.mb5 { - margin-bottom: 5px; -} -.mb8 { - margin-bottom: 8px; -} -.ml5 { - margin-left: 5px; -} -.mt10 { - margin-top: 10px; -} -.mr10 { - margin-right: 10px; -} -.mb10 { - margin-bottom: 10px; -} -.ml10 { - margin-left: 10px; -} -.mt20 { - margin-top: 20px; -} -.mr20 { - margin-right: 20px; -} -.mb20 { - margin-bottom: 20px; -} -.ml20 { - margin-left: 20px; -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} - -.el-message-box__status + .el-message-box__message{ - word-break: break-word; -} - -.el-dialog:not(.is-fullscreen) { - margin-top: 6vh !important; -} - -.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body { - overflow: auto; - overflow-x: hidden; - max-height: 70vh; - padding: 10px 20px 0; -} - -.el-table { - .el-table__header-wrapper, .el-table__fixed-header-wrapper { - th { - word-break: break-word; - background-color: #f8f8f9; - color: #515a6e; - height: 40px; - font-size: 13px; - } - } - .el-table__body-wrapper { - .el-button [class*="el-icon-"] + span { - margin-left: 1px; - } - } -} - -/** 表单布局 **/ -.form-header { - font-size:15px; - color:#6379bb; - border-bottom:1px solid #ddd; - margin:8px 10px 25px 10px; - padding-bottom:5px -} - -/** 表格布局 **/ -.pagination-container { - position: relative; - height: 25px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; -} - -/* tree border */ -.tree-border { - margin-top: 5px; - border: 1px solid #e5e6e7; - background: #FFFFFF none; - border-radius:4px; -} - -.pagination-container .el-pagination { - right: 0; - position: absolute; -} - -@media ( max-width : 768px) { - .pagination-container .el-pagination > .el-pagination__jump { - display: none !important; - } - .pagination-container .el-pagination > .el-pagination__sizes { - display: none !important; - } -} - -.el-table .fixed-width .el-button--mini { - padding-left: 0; - padding-right: 0; - width: inherit; -} - -/** 表格更多操作下拉样式 */ -.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine { - cursor: pointer; - margin-left: 5px; -} - -.el-table .el-dropdown, .el-icon-arrow-down { - font-size: 12px; -} - -.el-tree-node__content > .el-checkbox { - margin-right: 8px; -} - -.list-group-striped > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; -} - -.list-group { - padding-left: 0px; - list-style: none; -} - -.list-group-item { - border-bottom: 1px solid #e7eaec; - border-top: 1px solid #e7eaec; - margin-bottom: -1px; - padding: 11px 0px; - font-size: 13px; -} - -.pull-right { - float: right !important; -} - -.el-card__header { - padding: 14px 15px 7px; - min-height: 40px; -} - -.el-card__body { - padding: 15px 20px 20px 20px; -} - -.card-box { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 10px; -} - -/* button color */ -.el-button--cyan.is-active, -.el-button--cyan:active { - background: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -.el-button--cyan:focus, -.el-button--cyan:hover { - background: #48D1CC; - border-color: #48D1CC; - color: #FFFFFF; -} - -.el-button--cyan { - background-color: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -/* text color */ -.text-navy { - color: #1ab394; -} - -.text-primary { - color: inherit; -} - -.text-success { - color: #1c84c6; -} - -.text-info { - color: #23c6c8; -} - -.text-warning { - color: #f8ac59; -} - -.text-danger { - color: #ed5565; -} - -.text-muted { - color: #888888; -} - -/* image */ -.img-circle { - border-radius: 50%; -} - -.img-lg { - width: 120px; - height: 120px; -} - -.avatar-upload-preview { - position: relative; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 200px; - height: 200px; - border-radius: 50%; - box-shadow: 0 0 4px #ccc; - overflow: hidden; -} - -/* 拖拽列样式 */ -.sortable-ghost{ - opacity: .8; - color: #fff!important; - background: #42b983!important; -} - -.top-right-btn { - position: relative; - float: right; -} diff --git a/mes-ui/src/assets/styles/sidebar.scss b/mes-ui/src/assets/styles/sidebar.scss deleted file mode 100644 index abe5b63..0000000 --- a/mes-ui/src/assets/styles/sidebar.scss +++ /dev/null @@ -1,227 +0,0 @@ -#app { - - .main-container { - height: 100%; - transition: margin-left .28s; - margin-left: $base-sidebar-width; - position: relative; - } - - .sidebarHide { - margin-left: 0!important; - } - - .sidebar-container { - -webkit-transition: width .28s; - transition: width 0.28s; - width: $base-sidebar-width !important; - background-color: $base-menu-background; - height: 100%; - position: fixed; - font-size: 0px; - top: 0; - bottom: 0; - left: 0; - z-index: 1001; - overflow: hidden; - -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); - box-shadow: 2px 0 6px rgba(0,21,41,.35); - - // reset element-ui css - .horizontal-collapse-transition { - transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; - } - - .scrollbar-wrapper { - overflow-x: hidden !important; - } - - .el-scrollbar__bar.is-vertical { - right: 0px; - } - - .el-scrollbar { - height: 100%; - } - - &.has-logo { - .el-scrollbar { - height: calc(100% - 50px); - } - } - - .is-horizontal { - display: none; - } - - a { - display: inline-block; - width: 100%; - overflow: hidden; - } - - .svg-icon { - margin-right: 16px; - } - - .el-menu { - border: none; - height: 100%; - width: 100% !important; - } - - .el-menu-item, .el-submenu__title { - overflow: hidden !important; - text-overflow: ellipsis !important; - white-space: nowrap !important; - } - - // menu hover - .submenu-title-noDropdown, - .el-submenu__title { - &:hover { - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - & .theme-dark .is-active > .el-submenu__title { - color: $base-menu-color-active !important; - } - - & .nest-menu .el-submenu>.el-submenu__title, - & .el-submenu .el-menu-item { - min-width: $base-sidebar-width !important; - - &:hover { - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - & .theme-dark .nest-menu .el-submenu>.el-submenu__title, - & .theme-dark .el-submenu .el-menu-item { - background-color: $base-sub-menu-background !important; - - &:hover { - background-color: $base-sub-menu-hover !important; - } - } - } - - .hideSidebar { - .sidebar-container { - width: 54px !important; - } - - .main-container { - margin-left: 54px; - } - - .submenu-title-noDropdown { - padding: 0 !important; - position: relative; - - .el-tooltip { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - } - } - - .el-submenu { - overflow: hidden; - - &>.el-submenu__title { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - - } - } - - .el-menu--collapse { - .el-submenu { - &>.el-submenu__title { - &>span { - height: 0; - width: 0; - overflow: hidden; - visibility: hidden; - display: inline-block; - } - } - } - } - } - - .el-menu--collapse .el-menu .el-submenu { - min-width: $base-sidebar-width !important; - } - - // mobile responsive - .mobile { - .main-container { - margin-left: 0px; - } - - .sidebar-container { - transition: transform .28s; - width: $base-sidebar-width !important; - } - - &.hideSidebar { - .sidebar-container { - pointer-events: none; - transition-duration: 0.3s; - transform: translate3d(-$base-sidebar-width, 0, 0); - } - } - } - - .withoutAnimation { - - .main-container, - .sidebar-container { - transition: none; - } - } -} - -// when menu collapsed -.el-menu--vertical { - &>.el-menu { - .svg-icon { - margin-right: 16px; - } - } - - .nest-menu .el-submenu>.el-submenu__title, - .el-menu-item { - &:hover { - // you can use $subMenuHover - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - // the scroll bar appears when the subMenu is too long - >.el-menu--popup { - max-height: 100vh; - overflow-y: auto; - - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } - } -} diff --git a/mes-ui/src/assets/styles/transition.scss b/mes-ui/src/assets/styles/transition.scss deleted file mode 100644 index 073f8c6..0000000 --- a/mes-ui/src/assets/styles/transition.scss +++ /dev/null @@ -1,49 +0,0 @@ -// global transition css - -/* fade */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.28s; -} - -.fade-enter, -.fade-leave-active { - opacity: 0; -} - -/* fade-transform */ -.fade-transform--move, -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all .5s; -} - -.fade-transform-enter { - opacity: 0; - transform: translateX(-30px); -} - -.fade-transform-leave-to { - opacity: 0; - transform: translateX(30px); -} - -/* breadcrumb transition */ -.breadcrumb-enter-active, -.breadcrumb-leave-active { - transition: all .5s; -} - -.breadcrumb-enter, -.breadcrumb-leave-active { - opacity: 0; - transform: translateX(20px); -} - -.breadcrumb-move { - transition: all .5s; -} - -.breadcrumb-leave-active { - position: absolute; -} diff --git a/mes-ui/src/assets/styles/variables.scss b/mes-ui/src/assets/styles/variables.scss deleted file mode 100644 index 6803d33..0000000 --- a/mes-ui/src/assets/styles/variables.scss +++ /dev/null @@ -1,54 +0,0 @@ -// base color -$blue:#324157; -$light-blue:#3A71A8; -$red:#C03639; -$pink: #E65D6E; -$green: #30B08F; -$tiffany: #4AB7BD; -$yellow:#FEC171; -$panGreen: #30B08F; - -// 默认菜单主题风格 -$base-menu-color:#bfcbd9; -$base-menu-color-active:#f4f4f5; -$base-menu-background:#304156; -$base-menu-background:#001529; -$base-logo-title-color: #ffffff; - -$base-menu-light-color:rgba(0,0,0,.70); -$base-menu-light-background:#ffffff; -$base-logo-light-title-color: #001529; -//#1f2d3d -$base-sub-menu-background:#001529; -$base-sub-menu-hover:#1f2d3d; - - -// 自定义暗色菜单风格 -/*$base-menu-color:hsla(0,0%,100%,.65); -$base-menu-color-active:#fff; -$base-menu-background:#001529; -$base-logo-title-color: #ffffff; - -$base-menu-light-color:rgba(0,0,0,.70); -$base-menu-light-background:#ffffff; -$base-logo-light-title-color: #001529; - -$base-sub-menu-background:#000c17; -$base-sub-menu-hover:#001528;*/ - -$base-sidebar-width: 200px; - -// the :export directive is the magic sauce for webpack -// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass -:export { - menuColor: $base-menu-color; - menuLightColor: $base-menu-light-color; - menuColorActive: $base-menu-color-active; - menuBackground: $base-menu-background; - menuLightBackground: $base-menu-light-background; - subMenuBackground: $base-sub-menu-background; - subMenuHover: $base-sub-menu-hover; - sideBarWidth: $base-sidebar-width; - logoTitleColor: $base-logo-title-color; - logoLightTitleColor: $base-logo-light-title-color -} diff --git a/mes-ui/src/components/Breadcrumb/index.vue b/mes-ui/src/components/Breadcrumb/index.vue deleted file mode 100644 index 1696f54..0000000 --- a/mes-ui/src/components/Breadcrumb/index.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/Crontab/day.vue b/mes-ui/src/components/Crontab/day.vue deleted file mode 100644 index fe3eaf0..0000000 --- a/mes-ui/src/components/Crontab/day.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/hour.vue b/mes-ui/src/components/Crontab/hour.vue deleted file mode 100644 index 4b1f1fc..0000000 --- a/mes-ui/src/components/Crontab/hour.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/index.vue b/mes-ui/src/components/Crontab/index.vue deleted file mode 100644 index 3963df2..0000000 --- a/mes-ui/src/components/Crontab/index.vue +++ /dev/null @@ -1,430 +0,0 @@ - - - - diff --git a/mes-ui/src/components/Crontab/min.vue b/mes-ui/src/components/Crontab/min.vue deleted file mode 100644 index 43cab90..0000000 --- a/mes-ui/src/components/Crontab/min.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/components/Crontab/month.vue b/mes-ui/src/components/Crontab/month.vue deleted file mode 100644 index fd0ac38..0000000 --- a/mes-ui/src/components/Crontab/month.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/result.vue b/mes-ui/src/components/Crontab/result.vue deleted file mode 100644 index aea6e0e..0000000 --- a/mes-ui/src/components/Crontab/result.vue +++ /dev/null @@ -1,559 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/second.vue b/mes-ui/src/components/Crontab/second.vue deleted file mode 100644 index e7b7761..0000000 --- a/mes-ui/src/components/Crontab/second.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/week.vue b/mes-ui/src/components/Crontab/week.vue deleted file mode 100644 index 1cec700..0000000 --- a/mes-ui/src/components/Crontab/week.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - diff --git a/mes-ui/src/components/Crontab/year.vue b/mes-ui/src/components/Crontab/year.vue deleted file mode 100644 index 5487a6c..0000000 --- a/mes-ui/src/components/Crontab/year.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/mes-ui/src/components/DictData/index.js b/mes-ui/src/components/DictData/index.js deleted file mode 100644 index 7b85d4a..0000000 --- a/mes-ui/src/components/DictData/index.js +++ /dev/null @@ -1,49 +0,0 @@ -import Vue from 'vue' -import store from '@/store' -import DataDict from '@/utils/dict' -import { getDicts as getDicts } from '@/api/system/dict/data' - -function searchDictByKey(dict, key) { - if (key == null && key == "") { - return null - } - try { - for (let i = 0; i < dict.length; i++) { - if (dict[i].key == key) { - return dict[i].value - } - } - } catch (e) { - return null - } -} - -function install() { - Vue.use(DataDict, { - metas: { - '*': { - labelField: 'dictLabel', - valueField: 'dictValue', - request(dictMeta) { - const storeDict = searchDictByKey(store.getters.dict, dictMeta.type) - if (storeDict) { - return new Promise(resolve => { resolve(storeDict) }) - } else { - return new Promise((resolve, reject) => { - getDicts(dictMeta.type).then(res => { - store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data }) - resolve(res.data) - }).catch(error => { - reject(error) - }) - }) - } - }, - }, - }, - }) -} - -export default { - install, -} \ No newline at end of file diff --git a/mes-ui/src/components/DictTag/index.vue b/mes-ui/src/components/DictTag/index.vue deleted file mode 100644 index 279b613..0000000 --- a/mes-ui/src/components/DictTag/index.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - diff --git a/mes-ui/src/components/Editor/index.vue b/mes-ui/src/components/Editor/index.vue deleted file mode 100644 index 6bb5a18..0000000 --- a/mes-ui/src/components/Editor/index.vue +++ /dev/null @@ -1,272 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/FileUpload/index.vue b/mes-ui/src/components/FileUpload/index.vue deleted file mode 100644 index 6c583cf..0000000 --- a/mes-ui/src/components/FileUpload/index.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/Hamburger/index.vue b/mes-ui/src/components/Hamburger/index.vue deleted file mode 100644 index 368b002..0000000 --- a/mes-ui/src/components/Hamburger/index.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/HeaderSearch/index.vue b/mes-ui/src/components/HeaderSearch/index.vue deleted file mode 100644 index c4d76bb..0000000 --- a/mes-ui/src/components/HeaderSearch/index.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/IconSelect/index.vue b/mes-ui/src/components/IconSelect/index.vue deleted file mode 100644 index 8dadc02..0000000 --- a/mes-ui/src/components/IconSelect/index.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - diff --git a/mes-ui/src/components/IconSelect/requireIcons.js b/mes-ui/src/components/IconSelect/requireIcons.js deleted file mode 100644 index 99e5c54..0000000 --- a/mes-ui/src/components/IconSelect/requireIcons.js +++ /dev/null @@ -1,11 +0,0 @@ - -const req = require.context('../../assets/icons/svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys() - -const re = /\.\/(.*)\.svg/ - -const icons = requireAll(req).map(i => { - return i.match(re)[1] -}) - -export default icons diff --git a/mes-ui/src/components/ImagePreview/index.vue b/mes-ui/src/components/ImagePreview/index.vue deleted file mode 100644 index 3c770c7..0000000 --- a/mes-ui/src/components/ImagePreview/index.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/ImageUpload/index.vue b/mes-ui/src/components/ImageUpload/index.vue deleted file mode 100644 index 230ce53..0000000 --- a/mes-ui/src/components/ImageUpload/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/Pagination/index.vue b/mes-ui/src/components/Pagination/index.vue deleted file mode 100644 index 56f5a6b..0000000 --- a/mes-ui/src/components/Pagination/index.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/PanThumb/index.vue b/mes-ui/src/components/PanThumb/index.vue deleted file mode 100644 index 1bcf417..0000000 --- a/mes-ui/src/components/PanThumb/index.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/ParentView/index.vue b/mes-ui/src/components/ParentView/index.vue deleted file mode 100644 index 7bf6148..0000000 --- a/mes-ui/src/components/ParentView/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/mes-ui/src/components/RightPanel/index.vue b/mes-ui/src/components/RightPanel/index.vue deleted file mode 100644 index 5abeecb..0000000 --- a/mes-ui/src/components/RightPanel/index.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/RightToolbar/index.vue b/mes-ui/src/components/RightToolbar/index.vue deleted file mode 100644 index 527e07c..0000000 --- a/mes-ui/src/components/RightToolbar/index.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - diff --git a/mes-ui/src/components/RuoYi/Doc/index.vue b/mes-ui/src/components/RuoYi/Doc/index.vue deleted file mode 100644 index 75fa864..0000000 --- a/mes-ui/src/components/RuoYi/Doc/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/components/RuoYi/Git/index.vue b/mes-ui/src/components/RuoYi/Git/index.vue deleted file mode 100644 index bdafbae..0000000 --- a/mes-ui/src/components/RuoYi/Git/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/components/Screenfull/index.vue b/mes-ui/src/components/Screenfull/index.vue deleted file mode 100644 index d4e539c..0000000 --- a/mes-ui/src/components/Screenfull/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/SizeSelect/index.vue b/mes-ui/src/components/SizeSelect/index.vue deleted file mode 100644 index 069b5de..0000000 --- a/mes-ui/src/components/SizeSelect/index.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/mes-ui/src/components/SvgIcon/index.vue b/mes-ui/src/components/SvgIcon/index.vue deleted file mode 100644 index e4bf5ad..0000000 --- a/mes-ui/src/components/SvgIcon/index.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/ThemePicker/index.vue b/mes-ui/src/components/ThemePicker/index.vue deleted file mode 100644 index 1714e1f..0000000 --- a/mes-ui/src/components/ThemePicker/index.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/TopNav/index.vue b/mes-ui/src/components/TopNav/index.vue deleted file mode 100644 index 9fb8dd8..0000000 --- a/mes-ui/src/components/TopNav/index.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/mes-ui/src/components/iFrame/index.vue b/mes-ui/src/components/iFrame/index.vue deleted file mode 100644 index 426857f..0000000 --- a/mes-ui/src/components/iFrame/index.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/mes-ui/src/layout/components/Navbar.vue b/mes-ui/src/layout/components/Navbar.vue deleted file mode 100644 index b4fc132..0000000 --- a/mes-ui/src/layout/components/Navbar.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - - - diff --git a/mes-ui/src/layout/components/Settings/index.vue b/mes-ui/src/layout/components/Settings/index.vue deleted file mode 100644 index 8b49842..0000000 --- a/mes-ui/src/layout/components/Settings/index.vue +++ /dev/null @@ -1,260 +0,0 @@ - - - - - diff --git a/mes-ui/src/layout/components/Sidebar/FixiOSBug.js b/mes-ui/src/layout/components/Sidebar/FixiOSBug.js deleted file mode 100644 index 6823726..0000000 --- a/mes-ui/src/layout/components/Sidebar/FixiOSBug.js +++ /dev/null @@ -1,25 +0,0 @@ -export default { - computed: { - device() { - return this.$store.state.app.device - } - }, - mounted() { - // In order to fix the click on menu on the ios device will trigger the mouseleave bug - this.fixBugIniOS() - }, - methods: { - fixBugIniOS() { - const $subMenu = this.$refs.subMenu - if ($subMenu) { - const handleMouseleave = $subMenu.handleMouseleave - $subMenu.handleMouseleave = (e) => { - if (this.device === 'mobile') { - return - } - handleMouseleave(e) - } - } - } - } -} diff --git a/mes-ui/src/layout/components/Sidebar/Item.vue b/mes-ui/src/layout/components/Sidebar/Item.vue deleted file mode 100644 index be3285d..0000000 --- a/mes-ui/src/layout/components/Sidebar/Item.vue +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/mes-ui/src/layout/components/Sidebar/Link.vue b/mes-ui/src/layout/components/Sidebar/Link.vue deleted file mode 100644 index 8b0bc93..0000000 --- a/mes-ui/src/layout/components/Sidebar/Link.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/mes-ui/src/layout/components/Sidebar/Logo.vue b/mes-ui/src/layout/components/Sidebar/Logo.vue deleted file mode 100644 index 9927323..0000000 --- a/mes-ui/src/layout/components/Sidebar/Logo.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/mes-ui/src/layout/components/Sidebar/SidebarItem.vue b/mes-ui/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index 4853fbb..0000000 --- a/mes-ui/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/mes-ui/src/layout/components/Sidebar/index.vue b/mes-ui/src/layout/components/Sidebar/index.vue deleted file mode 100644 index 51d0839..0000000 --- a/mes-ui/src/layout/components/Sidebar/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/mes-ui/src/layout/components/TagsView/ScrollPane.vue b/mes-ui/src/layout/components/TagsView/ScrollPane.vue deleted file mode 100644 index f92d99b..0000000 --- a/mes-ui/src/layout/components/TagsView/ScrollPane.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - diff --git a/mes-ui/src/layout/components/TagsView/index.vue b/mes-ui/src/layout/components/TagsView/index.vue deleted file mode 100644 index 96585a5..0000000 --- a/mes-ui/src/layout/components/TagsView/index.vue +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - diff --git a/mes-ui/src/layout/components/index.js b/mes-ui/src/layout/components/index.js deleted file mode 100644 index 104bd3a..0000000 --- a/mes-ui/src/layout/components/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export { default as AppMain } from './AppMain' -export { default as Navbar } from './Navbar' -export { default as Settings } from './Settings' -export { default as Sidebar } from './Sidebar/index.vue' -export { default as TagsView } from './TagsView/index.vue' diff --git a/mes-ui/src/layout/index.vue b/mes-ui/src/layout/index.vue deleted file mode 100644 index dba4393..0000000 --- a/mes-ui/src/layout/index.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/mes-ui/src/layout/mixin/ResizeHandler.js b/mes-ui/src/layout/mixin/ResizeHandler.js deleted file mode 100644 index e8d0df8..0000000 --- a/mes-ui/src/layout/mixin/ResizeHandler.js +++ /dev/null @@ -1,45 +0,0 @@ -import store from '@/store' - -const { body } = document -const WIDTH = 992 // refer to Bootstrap's responsive design - -export default { - watch: { - $route(route) { - if (this.device === 'mobile' && this.sidebar.opened) { - store.dispatch('app/closeSideBar', { withoutAnimation: false }) - } - } - }, - beforeMount() { - window.addEventListener('resize', this.$_resizeHandler) - }, - beforeDestroy() { - window.removeEventListener('resize', this.$_resizeHandler) - }, - mounted() { - const isMobile = this.$_isMobile() - if (isMobile) { - store.dispatch('app/toggleDevice', 'mobile') - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_isMobile() { - const rect = body.getBoundingClientRect() - return rect.width - 1 < WIDTH - }, - $_resizeHandler() { - if (!document.hidden) { - const isMobile = this.$_isMobile() - store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop') - - if (isMobile) { - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - } - } - } -} diff --git a/mes-ui/src/main.js b/mes-ui/src/main.js deleted file mode 100644 index 92107e2..0000000 --- a/mes-ui/src/main.js +++ /dev/null @@ -1,112 +0,0 @@ -import Vue from 'vue' - -import Cookies from 'js-cookie' - -import Element from 'element-ui' -import './assets/styles/element-variables.scss' - -import '@/assets/styles/index.scss' // global css -import '@/assets/styles/ruoyi.scss' // ruoyi css -import '@/assets/styles/jinzhong.scss' -import App from './App' -import store from './store' -import router from './router' -import directive from './directive' // directive -import plugins from './plugins' // plugins -import { download } from '@/utils/request' - -import './assets/icons' // icon -import './permission' // permission control -import { getDicts } from "@/api/system/dict/data"; -import { getConfigKey } from "@/api/system/config"; -import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; -// 分页组件 -import Pagination from "@/components/Pagination"; -// 自定义表格工具组件 -import RightToolbar from "@/components/RightToolbar" -// 富文本组件 -import Editor from "@/components/Editor" -// 文件上传组件 -import FileUpload from "@/components/FileUpload" -// 图片上传组件 -import ImageUpload from "@/components/ImageUpload" -// 图片预览组件 -import ImagePreview from "@/components/ImagePreview" -// 字典标签组件 -import DictTag from '@/components/DictTag' -// 头部标签组件 -import VueMeta from 'vue-meta' -// 字典数据组件 -import DictData from '@/components/DictData' - -// 全局方法挂载 -Vue.prototype.getDicts = getDicts -Vue.prototype.getConfigKey = getConfigKey -Vue.prototype.parseTime = parseTime -Vue.prototype.resetForm = resetForm -Vue.prototype.addDateRange = addDateRange -Vue.prototype.selectDictLabel = selectDictLabel -Vue.prototype.selectDictLabels = selectDictLabels -Vue.prototype.download = download -Vue.prototype.handleTree = handleTree - -// 全局组件挂载 -Vue.component('DictTag', DictTag) -Vue.component('Pagination', Pagination) -Vue.component('RightToolbar', RightToolbar) -Vue.component('Editor', Editor) -Vue.component('FileUpload', FileUpload) -Vue.component('ImageUpload', ImageUpload) -Vue.component('ImagePreview', ImagePreview) - -Vue.use(directive) -Vue.use(plugins) -Vue.use(VueMeta) -DictData.install() - -/** - * If you don't want to use mock-server - * you want to use MockJs for mock api - * you can execute: mockXHR() - * - * Currently MockJs will be used in the production environment, - * please remove it before going online! ! ! - */ - -Vue.use(Element, { - size: Cookies.get('size') || 'medium' // set element-ui default size -}) - -Vue.config.productionTip = false - -new Vue({ - el: '#app', - router, - store, - render: h => h(App) -}) - - -//以下为mes自定义部分 -Date.prototype.format = function(fmt) -{ - var o = { - "M+" : this.getMonth()+1, //月份 - "d+" : this.getDate(), //日 - "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时 - "H+" : this.getHours(), //小时 - "m+" : this.getMinutes(), //分 - "s+" : this.getSeconds(), //秒 - "q+" : Math.floor((this.getMonth()+3)/3), //季度 - "S" : this.getMilliseconds() //毫秒 - }; - if(/(y+)/.test(fmt)) - fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); - for(var k in o) - if(new RegExp("("+ k +")").test(fmt)) - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); - return fmt; -} - -import * as echarts from 'echarts' -Vue.prototype.$echarts = echarts; diff --git a/mes-ui/src/permission.js b/mes-ui/src/permission.js deleted file mode 100644 index 6bb0a1f..0000000 --- a/mes-ui/src/permission.js +++ /dev/null @@ -1,56 +0,0 @@ -import router from './router' -import store from './store' -import { Message } from 'element-ui' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -import { isRelogin } from '@/utils/request' - -NProgress.configure({ showSpinner: false }) - -const whiteList = ['/login', '/auth-redirect', '/bind', '/register'] - -router.beforeEach((to, from, next) => { - NProgress.start() - if (getToken()) { - to.meta.title && store.dispatch('settings/setTitle', to.meta.title) - /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - NProgress.done() - } else { - if (store.getters.roles.length === 0) { - isRelogin.show = true - // 判断当前用户是否已拉取完user_info信息 - store.dispatch('GetInfo').then(() => { - isRelogin.show = false - store.dispatch('GenerateRoutes').then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - router.addRoutes(accessRoutes) // 动态添加可访问路由表 - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 - }) - }).catch(err => { - store.dispatch('LogOut').then(() => { - Message.error(err) - next({ path: '/' }) - }) - }) - } else { - next() - } - } - } else { - // 没有token - if (whiteList.indexOf(to.path) !== -1) { - // 在免登录白名单,直接进入 - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() - } - } -}) - -router.afterEach(() => { - NProgress.done() -}) diff --git a/mes-ui/src/plugins/auth.js b/mes-ui/src/plugins/auth.js deleted file mode 100644 index 6c6bc24..0000000 --- a/mes-ui/src/plugins/auth.js +++ /dev/null @@ -1,60 +0,0 @@ -import store from '@/store' - -function authPermission(permission) { - const all_permission = "*:*:*"; - const permissions = store.getters && store.getters.permissions - if (permission && permission.length > 0) { - return permissions.some(v => { - return all_permission === v || v === permission - }) - } else { - return false - } -} - -function authRole(role) { - const super_admin = "admin"; - const roles = store.getters && store.getters.roles - if (role && role.length > 0) { - return roles.some(v => { - return super_admin === v || v === role - }) - } else { - return false - } -} - -export default { - // 验证用户是否具备某权限 - hasPermi(permission) { - return authPermission(permission); - }, - // 验证用户是否含有指定权限,只需包含其中一个 - hasPermiOr(permissions) { - return permissions.some(item => { - return authPermission(item) - }) - }, - // 验证用户是否含有指定权限,必须全部拥有 - hasPermiAnd(permissions) { - return permissions.every(item => { - return authPermission(item) - }) - }, - // 验证用户是否具备某角色 - hasRole(role) { - return authRole(role); - }, - // 验证用户是否含有指定角色,只需包含其中一个 - hasRoleOr(roles) { - return roles.some(item => { - return authRole(item) - }) - }, - // 验证用户是否含有指定角色,必须全部拥有 - hasRoleAnd(roles) { - return roles.every(item => { - return authRole(item) - }) - } -} diff --git a/mes-ui/src/plugins/cache.js b/mes-ui/src/plugins/cache.js deleted file mode 100644 index 6b5c00b..0000000 --- a/mes-ui/src/plugins/cache.js +++ /dev/null @@ -1,77 +0,0 @@ -const sessionCache = { - set (key, value) { - if (!sessionStorage) { - return - } - if (key != null && value != null) { - sessionStorage.setItem(key, value) - } - }, - get (key) { - if (!sessionStorage) { - return null - } - if (key == null) { - return null - } - return sessionStorage.getItem(key) - }, - setJSON (key, jsonValue) { - if (jsonValue != null) { - this.set(key, JSON.stringify(jsonValue)) - } - }, - getJSON (key) { - const value = this.get(key) - if (value != null) { - return JSON.parse(value) - } - }, - remove (key) { - sessionStorage.removeItem(key); - } -} -const localCache = { - set (key, value) { - if (!localStorage) { - return - } - if (key != null && value != null) { - localStorage.setItem(key, value) - } - }, - get (key) { - if (!localStorage) { - return null - } - if (key == null) { - return null - } - return localStorage.getItem(key) - }, - setJSON (key, jsonValue) { - if (jsonValue != null) { - this.set(key, JSON.stringify(jsonValue)) - } - }, - getJSON (key) { - const value = this.get(key) - if (value != null) { - return JSON.parse(value) - } - }, - remove (key) { - localStorage.removeItem(key); - } -} - -export default { - /** - * 会话级缓存 - */ - session: sessionCache, - /** - * 本地缓存 - */ - local: localCache -} diff --git a/mes-ui/src/plugins/download.js b/mes-ui/src/plugins/download.js deleted file mode 100644 index ffb8c14..0000000 --- a/mes-ui/src/plugins/download.js +++ /dev/null @@ -1,72 +0,0 @@ -import axios from 'axios' -import { Message } from 'element-ui' -import { saveAs } from 'file-saver' -import { getToken } from '@/utils/auth' -import errorCode from '@/utils/errorCode' -import { blobValidate } from "@/utils/ruoyi"; - -const baseURL = process.env.VUE_APP_BASE_API - -export default { - name(name, isDelete = true) { - var url = baseURL + "/common/download?fileName=" + encodeURIComponent(name) + "&delete=" + isDelete - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then((res) => { - const isBlob = blobValidate(res.data); - if (isBlob) { - const blob = new Blob([res.data]) - this.saveAs(blob, decodeURIComponent(res.headers['download-filename'])) - } else { - this.printErrMsg(res.data); - } - }) - }, - resource(resource) { - var url = baseURL + "/common/download/resource?resource=" + encodeURIComponent(resource); - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then((res) => { - const isBlob = blobValidate(res.data); - if (isBlob) { - const blob = new Blob([res.data]) - this.saveAs(blob, decodeURIComponent(res.headers['download-filename'])) - } else { - this.printErrMsg(res.data); - } - }) - }, - zip(url, name) { - var url = baseURL + url - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then((res) => { - const isBlob = blobValidate(res.data); - if (isBlob) { - const blob = new Blob([res.data], { type: 'application/zip' }) - this.saveAs(blob, name) - } else { - this.printErrMsg(res.data); - } - }) - }, - saveAs(text, name, opts) { - saveAs(text, name, opts); - }, - async printErrMsg(data) { - const resText = await data.text(); - const rspObj = JSON.parse(resText); - const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'] - Message.error(errMsg); - } -} - diff --git a/mes-ui/src/plugins/index.js b/mes-ui/src/plugins/index.js deleted file mode 100644 index d000f2d..0000000 --- a/mes-ui/src/plugins/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import tab from './tab' -import auth from './auth' -import cache from './cache' -import modal from './modal' -import download from './download' - -export default { - install(Vue) { - // 页签操作 - Vue.prototype.$tab = tab - // 认证对象 - Vue.prototype.$auth = auth - // 缓存对象 - Vue.prototype.$cache = cache - // 模态框对象 - Vue.prototype.$modal = modal - // 下载文件 - Vue.prototype.$download = download - } -} diff --git a/mes-ui/src/plugins/modal.js b/mes-ui/src/plugins/modal.js deleted file mode 100644 index b37ca14..0000000 --- a/mes-ui/src/plugins/modal.js +++ /dev/null @@ -1,83 +0,0 @@ -import { Message, MessageBox, Notification, Loading } from 'element-ui' - -let loadingInstance; - -export default { - // 消息提示 - msg(content) { - Message.info(content) - }, - // 错误消息 - msgError(content) { - Message.error(content) - }, - // 成功消息 - msgSuccess(content) { - Message.success(content) - }, - // 警告消息 - msgWarning(content) { - Message.warning(content) - }, - // 弹出提示 - alert(content) { - MessageBox.alert(content, "系统提示") - }, - // 错误提示 - alertError(content) { - MessageBox.alert(content, "系统提示", { type: 'error' }) - }, - // 成功提示 - alertSuccess(content) { - MessageBox.alert(content, "系统提示", { type: 'success' }) - }, - // 警告提示 - alertWarning(content) { - MessageBox.alert(content, "系统提示", { type: 'warning' }) - }, - // 通知提示 - notify(content) { - Notification.info(content) - }, - // 错误通知 - notifyError(content) { - Notification.error(content); - }, - // 成功通知 - notifySuccess(content) { - Notification.success(content) - }, - // 警告通知 - notifyWarning(content) { - Notification.warning(content) - }, - // 确认窗体 - confirm(content) { - return MessageBox.confirm(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 提交内容 - prompt(content) { - return MessageBox.prompt(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 打开遮罩层 - loading(content) { - loadingInstance = Loading.service({ - lock: true, - text: content, - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }) - }, - // 关闭遮罩层 - closeLoading() { - loadingInstance.close(); - } -} diff --git a/mes-ui/src/plugins/tab.js b/mes-ui/src/plugins/tab.js deleted file mode 100644 index b029c0e..0000000 --- a/mes-ui/src/plugins/tab.js +++ /dev/null @@ -1,71 +0,0 @@ -import store from '@/store' -import router from '@/router'; - -export default { - // 刷新当前tab页签 - refreshPage(obj) { - const { path, query, matched } = router.currentRoute; - if (obj === undefined) { - matched.forEach((m) => { - if (m.components && m.components.default && m.components.default.name) { - if (!['Layout', 'ParentView'].includes(m.components.default.name)) { - obj = { name: m.components.default.name, path: path, query: query }; - } - } - }); - } - return store.dispatch('tagsView/delCachedView', obj).then(() => { - const { path, query } = obj - router.replace({ - path: '/redirect' + path, - query: query - }) - }) - }, - // 关闭当前tab页签,打开新页签 - closeOpenPage(obj) { - store.dispatch("tagsView/delView", router.currentRoute); - if (obj !== undefined) { - return router.push(obj); - } - }, - // 关闭指定tab页签 - closePage(obj) { - if (obj === undefined) { - return store.dispatch('tagsView/delView', router.currentRoute).then(({ visitedViews }) => { - const latestView = visitedViews.slice(-1)[0] - if (latestView) { - return router.push(latestView.fullPath) - } - return router.push('/'); - }); - } - return store.dispatch('tagsView/delView', obj); - }, - // 关闭所有tab页签 - closeAllPage() { - return store.dispatch('tagsView/delAllViews'); - }, - // 关闭左侧tab页签 - closeLeftPage(obj) { - return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute); - }, - // 关闭右侧tab页签 - closeRightPage(obj) { - return store.dispatch('tagsView/delRightTags', obj || router.currentRoute); - }, - // 关闭其他tab页签 - closeOtherPage(obj) { - return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute); - }, - // 添加tab页签 - openPage(title, url, params) { - var obj = { path: url, meta: { title: title } } - store.dispatch('tagsView/addView', obj); - return router.push({ path: url, query: params }); - }, - // 修改tab页签 - updatePage(obj) { - return store.dispatch('tagsView/updateVisitedView', obj); - } -} diff --git a/mes-ui/src/router/index.js b/mes-ui/src/router/index.js deleted file mode 100644 index 42b1081..0000000 --- a/mes-ui/src/router/index.js +++ /dev/null @@ -1,351 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' - -Vue.use(Router) - -/* Layout */ -import Layout from '@/layout' - -/** - * Note: 路由配置项 - * - * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 - * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 - * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 - * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 - * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 - * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 - * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 - * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 - * roles: ['admin', 'common'] // 访问路由的角色权限 - * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 - * meta : { - noCache: true // 如果设置为true,则不会被 缓存(默认 false) - title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 - icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg - breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 - activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 - } - */ - -// 公共路由 -export const constantRoutes = [ - { - path: '/redirect', - component: Layout, - hidden: true, - children: [ - { - path: '/redirect/:path(.*)', - component: () => import('@/views/redirect') - } - ] - }, - { - path: '/login', - component: () => import('@/views/login'), - hidden: true - }, - { - path: '/register', - component: () => import('@/views/register'), - hidden: true - }, - { - path: '/404', - component: () => import('@/views/error/404'), - hidden: true - }, - { - path: '/401', - component: () => import('@/views/error/401'), - hidden: true - }, - { - path: '', - component: Layout, - redirect: 'index', - children: [ - { - path: 'index', - component: () => import('@/views/index'), - name: 'Index', - meta: { title: '首页', icon: 'dashboard', affix: true } - } - ] - }, - { - path: '/user', - component: Layout, - hidden: true, - redirect: 'noredirect', - children: [ - { - path: 'profile', - component: () => import('@/views/system/user/profile/index'), - name: 'Profile', - meta: { title: '个人中心', icon: 'user' } - } - ] - } -] - -// 动态路由,基于用户权限动态去加载 -export const dynamicRoutes = [ - { - path: '/system/user-auth', - component: Layout, - hidden: true, - permissions: ['system:user:edit'], - children: [ - { - path: 'role/:userId(\\d+)', - component: () => import('@/views/system/user/authRole'), - name: 'AuthRole', - meta: { title: '分配角色', activeMenu: '/system/user' } - } - ] - }, - { - path: '/system/role-auth', - component: Layout, - hidden: true, - permissions: ['system:role:edit'], - children: [ - { - path: 'user/:roleId(\\d+)', - component: () => import('@/views/system/role/authUser'), - name: 'AuthUser', - meta: { title: '分配用户', activeMenu: '/system/role' } - } - ] - }, - { - path: '/system/dict-data', - component: Layout, - hidden: true, - permissions: ['system:dict:list'], - children: [ - { - path: 'index/:dictId(\\d+)', - component: () => import('@/views/system/dict/data'), - name: 'Data', - meta: { title: '字典数据', activeMenu: '/system/dict' } - } - ] - }, - { - path: '/monitor/job-log', - component: Layout, - hidden: true, - permissions: ['monitor:job:list'], - children: [ - { - path: 'index/:jobId(\\d+)', - component: () => import('@/views/monitor/job/log'), - name: 'JobLog', - meta: { title: '调度日志', activeMenu: '/monitor/job' } - } - ] - }, - { - path: '/tool/gen-edit', - component: Layout, - hidden: true, - permissions: ['tool:gen:edit'], - children: [ - { - path: 'index/:tableId(\\d+)', - component: () => import('@/views/tool/gen/editTable'), - name: 'GenEdit', - meta: { title: '修改生成配置', activeMenu: '/tool/gen' } - } - ] - }, - - /* 自定义路由 */ - //销售订单新增 - { - path: '/mes/saleOrder-add', - component: Layout, - hidden: true, - permissions: ['sale:saleOrder:add'], - children: [ - { - path: 'index', - component: () => import('@/views/mes/sale/saleOrder/form'), - name: 'form', - meta: { title: '销售订单-新增' , activeMenu: '/mes/sale/saleOrder'} - } - ] - }, - //销售订单编辑 - { - path: '/mes/saleOrder-edit', - component: Layout, - hidden: true, - permissions: ['sale:saleOrder:edit'], - children: [ - { - path: 'index/:saleOrderId(\\d+)', - component: () => import('@/views/mes/sale/saleOrder/form'), - name: 'form', - meta: { title: '销售订单-编辑' , activeMenu: '/mes/sale/saleOrder'} - } - ] - }, - //产品入库单新增 - { - path: '/mes/manufactureInto-add', - component: Layout, - hidden: true, - permissions: ['warehouse:manufactureInto:add'], - children: [ - { - path: 'index', - component: () => import('@/views/mes/warehouse/manufactureInto/form'), - name: 'form', - meta: { title: '产品入库单-新增' , activeMenu: '/mes/warehouse/manufactureInto'} - } - ] - }, - //产品入库单编辑 - { - path: '/mes/manufactureInto-edit', - component: Layout, - hidden: true, - permissions: ['warehouse:manufactureInto:edit'], - children: [ - { - path: 'index/:id(\\d+)', - component: () => import('@/views/mes/warehouse/manufactureInto/form'), - name: 'form', - meta: { title: '产品入库单-编辑' , activeMenu: '/mes/warehouse/manufactureInto'} - } - ] - }, - //生产工单新增 - { - path: '/mes/workOrder-add', - component: Layout, - hidden: true, - permissions: ['production:workOrder:add'], - children: [ - { - path: 'index', - component: () => import('@/views/mes/production/workOrder/form'), - name: 'form', - meta: { title: '生产工单-新增' , activeMenu: '/mes/production/workOrder'} - } - ] - }, - //生产工单编辑 - { - path: '/mes/workOrder-edit', - component: Layout, - hidden: true, - permissions: ['production:workOrder:edit'], - children: [ - { - path: 'index/:id(\\d+)', - component: () => import('@/views/mes/production/workOrder/form'), - name: 'form', - meta: { title: '生产工单-编辑' , activeMenu: '/mes/production/workOrder'} - } - ] - }, - - //报工单新增 - { - path: '/mes/report-add', - component: Layout, - hidden: true, - permissions: ['production:report:add'], - children: [ - { - path: 'index/:workOrderId(\\d+)', - component: () => import('@/views/mes/production/report/form'), - name: 'form', - meta: { title: '生产报工详情' , activeMenu: '/mes/production/report'} - } - ] - }, - //报工单编辑 - { - path: '/mes/report-edit', - component: Layout, - hidden: true, - permissions: ['production:report:edit'], - children: [ - { - path: 'index/:id(\\d+)', - component: () => import('@/views/mes/production/report/form'), - name: 'form', - meta: { title: '报工单-编辑' , activeMenu: '/mes/production/report'} - } - ] - }, - //生产工单预览 - { - path: '/mes/workOrder-preview', - component: Layout, - hidden: true, - permissions: ['production:workOrder:edit'], - children: [ - { - path: 'index', - component: () => import('@/components/mes/workOrderPreview'), - name: 'workOrderPreview', - meta: { title: '排产计划' } - } - ] - }, - //生产领料单新增 - { - path: '/mes/proPick-add', - component: Layout, - hidden: true, - permissions: ['warehouse:proPick:add'], - children: [ - { - path: 'index', - component: () => import('@/views/mes/warehouse/proPick/form'), - name: 'form', - meta: { title: '生产领料单-新增' , activeMenu: '/mes/warehouse/proPick'} - } - ] - }, - //生产领料单编辑 - { - path: '/mes/proPick-edit', - component: Layout, - hidden: true, - permissions: ['warehouse:proPick:edit'], - children: [ - { - path: 'index/:id(\\d+)', - component: () => import('@/views/mes/warehouse/proPick/form'), - name: 'form', - meta: { title: '生产领料单-编辑' , activeMenu: '/mes/warehouse/proPick'} - } - ] - }, -] - -// 防止连续点击多次路由报错 -let routerPush = Router.prototype.push; -let routerReplace = Router.prototype.replace; -// push -Router.prototype.push = function push(location) { - return routerPush.call(this, location).catch(err => err) -} -// replace -Router.prototype.replace = function push(location) { - return routerReplace.call(this, location).catch(err => err) -} - -export default new Router({ - mode: 'history', // 去掉url中的# - scrollBehavior: () => ({ y: 0 }), - routes: constantRoutes -}) diff --git a/mes-ui/src/settings.js b/mes-ui/src/settings.js deleted file mode 100644 index 6a0b09f..0000000 --- a/mes-ui/src/settings.js +++ /dev/null @@ -1,44 +0,0 @@ -module.exports = { - /** - * 侧边栏主题 深色主题theme-dark,浅色主题theme-light - */ - sideTheme: 'theme-dark', - - /** - * 是否系统布局配置 - */ - showSettings: false, - - /** - * 是否显示顶部导航 - */ - topNav: false, - - /** - * 是否显示 tagsView - */ - tagsView: true, - - /** - * 是否固定头部 - */ - fixedHeader: false, - - /** - * 是否显示logo - */ - sidebarLogo: true, - - /** - * 是否显示动态标题 - */ - dynamicTitle: false, - - /** - * @type {string | array} 'production' | ['production', 'development'] - * @description Need show err logs component. - * The default is only used in the production env - * If you want to also use it in dev, you can pass ['production', 'development'] - */ - errorLog: 'production' -} diff --git a/mes-ui/src/store/getters.js b/mes-ui/src/store/getters.js deleted file mode 100644 index 8adb1b6..0000000 --- a/mes-ui/src/store/getters.js +++ /dev/null @@ -1,19 +0,0 @@ -const getters = { - sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - dict: state => state.dict.dict, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - permissions: state => state.user.permissions, - permission_routes: state => state.permission.routes, - topbarRouters:state => state.permission.topbarRouters, - defaultRoutes:state => state.permission.defaultRoutes, - sidebarRouters:state => state.permission.sidebarRouters, -} -export default getters diff --git a/mes-ui/src/store/index.js b/mes-ui/src/store/index.js deleted file mode 100644 index 97aaef8..0000000 --- a/mes-ui/src/store/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' -import app from './modules/app' -import dict from './modules/dict' -import user from './modules/user' -import tagsView from './modules/tagsView' -import permission from './modules/permission' -import settings from './modules/settings' -import getters from './getters' - -Vue.use(Vuex) - -const store = new Vuex.Store({ - modules: { - app, - dict, - user, - tagsView, - permission, - settings - }, - getters -}) - -export default store diff --git a/mes-ui/src/store/modules/app.js b/mes-ui/src/store/modules/app.js deleted file mode 100644 index 3e22d1c..0000000 --- a/mes-ui/src/store/modules/app.js +++ /dev/null @@ -1,66 +0,0 @@ -import Cookies from 'js-cookie' - -const state = { - sidebar: { - opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, - withoutAnimation: false, - hide: false - }, - device: 'desktop', - size: Cookies.get('size') || 'medium' -} - -const mutations = { - TOGGLE_SIDEBAR: state => { - if (state.sidebar.hide) { - return false; - } - state.sidebar.opened = !state.sidebar.opened - state.sidebar.withoutAnimation = false - if (state.sidebar.opened) { - Cookies.set('sidebarStatus', 1) - } else { - Cookies.set('sidebarStatus', 0) - } - }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Cookies.set('sidebarStatus', 0) - state.sidebar.opened = false - state.sidebar.withoutAnimation = withoutAnimation - }, - TOGGLE_DEVICE: (state, device) => { - state.device = device - }, - SET_SIZE: (state, size) => { - state.size = size - Cookies.set('size', size) - }, - SET_SIDEBAR_HIDE: (state, status) => { - state.sidebar.hide = status - } -} - -const actions = { - toggleSideBar({ commit }) { - commit('TOGGLE_SIDEBAR') - }, - closeSideBar({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR', withoutAnimation) - }, - toggleDevice({ commit }, device) { - commit('TOGGLE_DEVICE', device) - }, - setSize({ commit }, size) { - commit('SET_SIZE', size) - }, - toggleSideBarHide({ commit }, status) { - commit('SET_SIDEBAR_HIDE', status) - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} diff --git a/mes-ui/src/store/modules/dict.js b/mes-ui/src/store/modules/dict.js deleted file mode 100644 index f95bead..0000000 --- a/mes-ui/src/store/modules/dict.js +++ /dev/null @@ -1,50 +0,0 @@ -const state = { - dict: new Array() -} -const mutations = { - SET_DICT: (state, { key, value }) => { - if (key !== null && key !== "") { - state.dict.push({ - key: key, - value: value - }) - } - }, - REMOVE_DICT: (state, key) => { - try { - for (let i = 0; i < state.dict.length; i++) { - if (state.dict[i].key == key) { - state.dict.splice(i, i) - return true - } - } - } catch (e) { - } - }, - CLEAN_DICT: (state) => { - state.dict = new Array() - } -} - -const actions = { - // 设置字典 - setDict({ commit }, data) { - commit('SET_DICT', data) - }, - // 删除字典 - removeDict({ commit }, key) { - commit('REMOVE_DICT', key) - }, - // 清空字典 - cleanDict({ commit }) { - commit('CLEAN_DICT') - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} - diff --git a/mes-ui/src/store/modules/permission.js b/mes-ui/src/store/modules/permission.js deleted file mode 100644 index 2287665..0000000 --- a/mes-ui/src/store/modules/permission.js +++ /dev/null @@ -1,133 +0,0 @@ -import auth from '@/plugins/auth' -import router, { constantRoutes, dynamicRoutes } from '@/router' -import { getRouters } from '@/api/menu' -import Layout from '@/layout/index' -import ParentView from '@/components/ParentView' -import InnerLink from '@/layout/components/InnerLink' - -const permission = { - state: { - routes: [], - addRoutes: [], - defaultRoutes: [], - topbarRouters: [], - sidebarRouters: [] - }, - mutations: { - SET_ROUTES: (state, routes) => { - state.addRoutes = routes - state.routes = constantRoutes.concat(routes) - }, - SET_DEFAULT_ROUTES: (state, routes) => { - state.defaultRoutes = constantRoutes.concat(routes) - }, - SET_TOPBAR_ROUTES: (state, routes) => { - state.topbarRouters = routes - }, - SET_SIDEBAR_ROUTERS: (state, routes) => { - state.sidebarRouters = routes - }, - }, - actions: { - // 生成路由 - GenerateRoutes({ commit }) { - return new Promise(resolve => { - // 向后端请求路由数据 - getRouters().then(res => { - const sdata = JSON.parse(JSON.stringify(res.data)) - const rdata = JSON.parse(JSON.stringify(res.data)) - const sidebarRoutes = filterAsyncRouter(sdata) - const rewriteRoutes = filterAsyncRouter(rdata, false, true) - const asyncRoutes = filterDynamicRoutes(dynamicRoutes); - rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true }) - router.addRoutes(asyncRoutes); - commit('SET_ROUTES', rewriteRoutes) - commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes)) - commit('SET_DEFAULT_ROUTES', sidebarRoutes) - commit('SET_TOPBAR_ROUTES', sidebarRoutes) - resolve(rewriteRoutes) - }) - }) - } - } -} - -// 遍历后台传来的路由字符串,转换为组件对象 -function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { - return asyncRouterMap.filter(route => { - if (type && route.children) { - route.children = filterChildren(route.children) - } - if (route.component) { - // Layout ParentView 组件特殊处理 - if (route.component === 'Layout') { - route.component = Layout - } else if (route.component === 'ParentView') { - route.component = ParentView - } else if (route.component === 'InnerLink') { - route.component = InnerLink - } else { - route.component = loadView(route.component) - } - } - if (route.children != null && route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, route, type) - } else { - delete route['children'] - delete route['redirect'] - } - return true - }) -} - -function filterChildren(childrenMap, lastRouter = false) { - var children = [] - childrenMap.forEach((el, index) => { - if (el.children && el.children.length) { - if (el.component === 'ParentView' && !lastRouter) { - el.children.forEach(c => { - c.path = el.path + '/' + c.path - if (c.children && c.children.length) { - children = children.concat(filterChildren(c.children, c)) - return - } - children.push(c) - }) - return - } - } - if (lastRouter) { - el.path = lastRouter.path + '/' + el.path - } - children = children.concat(el) - }) - return children -} - -// 动态路由遍历,验证是否具备权限 -export function filterDynamicRoutes(routes) { - const res = [] - routes.forEach(route => { - if (route.permissions) { - if (auth.hasPermiOr(route.permissions)) { - res.push(route) - } - } else if (route.roles) { - if (auth.hasRoleOr(route.roles)) { - res.push(route) - } - } - }) - return res -} - -export const loadView = (view) => { - if (process.env.NODE_ENV === 'development') { - return (resolve) => require([`@/views/${view}`], resolve) - } else { - // 使用 import 实现生产环境的路由懒加载 - return () => import(`@/views/${view}`) - } -} - -export default permission diff --git a/mes-ui/src/store/modules/settings.js b/mes-ui/src/store/modules/settings.js deleted file mode 100644 index 2455a1e..0000000 --- a/mes-ui/src/store/modules/settings.js +++ /dev/null @@ -1,42 +0,0 @@ -import defaultSettings from '@/settings' - -const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings - -const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' -const state = { - title: '', - theme: storageSetting.theme || '#409EFF', - sideTheme: storageSetting.sideTheme || sideTheme, - showSettings: showSettings, - topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, - tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView, - fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader, - sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo, - dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle -} -const mutations = { - CHANGE_SETTING: (state, { key, value }) => { - if (state.hasOwnProperty(key)) { - state[key] = value - } - } -} - -const actions = { - // 修改布局设置 - changeSetting({ commit }, data) { - commit('CHANGE_SETTING', data) - }, - // 设置网页标题 - setTitle({ commit }, title) { - state.title = title - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} - diff --git a/mes-ui/src/store/modules/tagsView.js b/mes-ui/src/store/modules/tagsView.js deleted file mode 100644 index 5fc011c..0000000 --- a/mes-ui/src/store/modules/tagsView.js +++ /dev/null @@ -1,228 +0,0 @@ -const state = { - visitedViews: [], - cachedViews: [], - iframeViews: [] -} - -const mutations = { - ADD_IFRAME_VIEW: (state, view) => { - if (state.iframeViews.some(v => v.path === view.path)) return - state.iframeViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name' - }) - ) - }, - ADD_VISITED_VIEW: (state, view) => { - if (state.visitedViews.some(v => v.path === view.path)) return - state.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name' - }) - ) - }, - ADD_CACHED_VIEW: (state, view) => { - if (state.cachedViews.includes(view.name)) return - if (view.meta && !view.meta.noCache) { - state.cachedViews.push(view.name) - } - }, - DEL_VISITED_VIEW: (state, view) => { - for (const [i, v] of state.visitedViews.entries()) { - if (v.path === view.path) { - state.visitedViews.splice(i, 1) - break - } - } - state.iframeViews = state.iframeViews.filter(item => item.path !== view.path) - }, - DEL_IFRAME_VIEW: (state, view) => { - state.iframeViews = state.iframeViews.filter(item => item.path !== view.path) - }, - DEL_CACHED_VIEW: (state, view) => { - const index = state.cachedViews.indexOf(view.name) - index > -1 && state.cachedViews.splice(index, 1) - }, - - DEL_OTHERS_VISITED_VIEWS: (state, view) => { - state.visitedViews = state.visitedViews.filter(v => { - return v.meta.affix || v.path === view.path - }) - state.iframeViews = state.iframeViews.filter(item => item.path === view.path) - }, - DEL_OTHERS_CACHED_VIEWS: (state, view) => { - const index = state.cachedViews.indexOf(view.name) - if (index > -1) { - state.cachedViews = state.cachedViews.slice(index, index + 1) - } else { - state.cachedViews = [] - } - }, - DEL_ALL_VISITED_VIEWS: state => { - // keep affix tags - const affixTags = state.visitedViews.filter(tag => tag.meta.affix) - state.visitedViews = affixTags - state.iframeViews = [] - }, - DEL_ALL_CACHED_VIEWS: state => { - state.cachedViews = [] - }, - UPDATE_VISITED_VIEW: (state, view) => { - for (let v of state.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view) - break - } - } - }, - DEL_RIGHT_VIEWS: (state, view) => { - const index = state.visitedViews.findIndex(v => v.path === view.path) - if (index === -1) { - return - } - state.visitedViews = state.visitedViews.filter((item, idx) => { - if (idx <= index || (item.meta && item.meta.affix)) { - return true - } - const i = state.cachedViews.indexOf(item.name) - if (i > -1) { - state.cachedViews.splice(i, 1) - } - if(item.meta.link) { - const fi = state.iframeViews.findIndex(v => v.path === item.path) - state.iframeViews.splice(fi, 1) - } - return false - }) - }, - DEL_LEFT_VIEWS: (state, view) => { - const index = state.visitedViews.findIndex(v => v.path === view.path) - if (index === -1) { - return - } - state.visitedViews = state.visitedViews.filter((item, idx) => { - if (idx >= index || (item.meta && item.meta.affix)) { - return true - } - const i = state.cachedViews.indexOf(item.name) - if (i > -1) { - state.cachedViews.splice(i, 1) - } - if(item.meta.link) { - const fi = state.iframeViews.findIndex(v => v.path === item.path) - state.iframeViews.splice(fi, 1) - } - return false - }) - } -} - -const actions = { - addView({ dispatch }, view) { - dispatch('addVisitedView', view) - dispatch('addCachedView', view) - }, - addIframeView({ commit }, view) { - commit('ADD_IFRAME_VIEW', view) - }, - addVisitedView({ commit }, view) { - commit('ADD_VISITED_VIEW', view) - }, - addCachedView({ commit }, view) { - commit('ADD_CACHED_VIEW', view) - }, - delView({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delVisitedView', view) - dispatch('delCachedView', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delVisitedView({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_VISITED_VIEW', view) - resolve([...state.visitedViews]) - }) - }, - delIframeView({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_IFRAME_VIEW', view) - resolve([...state.iframeViews]) - }) - }, - delCachedView({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_CACHED_VIEW', view) - resolve([...state.cachedViews]) - }) - }, - delOthersViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delOthersVisitedViews', view) - dispatch('delOthersCachedViews', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delOthersVisitedViews({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_OTHERS_VISITED_VIEWS', view) - resolve([...state.visitedViews]) - }) - }, - delOthersCachedViews({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_OTHERS_CACHED_VIEWS', view) - resolve([...state.cachedViews]) - }) - }, - delAllViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delAllVisitedViews', view) - dispatch('delAllCachedViews', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delAllVisitedViews({ commit, state }) { - return new Promise(resolve => { - commit('DEL_ALL_VISITED_VIEWS') - resolve([...state.visitedViews]) - }) - }, - delAllCachedViews({ commit, state }) { - return new Promise(resolve => { - commit('DEL_ALL_CACHED_VIEWS') - resolve([...state.cachedViews]) - }) - }, - updateVisitedView({ commit }, view) { - commit('UPDATE_VISITED_VIEW', view) - }, - delRightTags({ commit }, view) { - return new Promise(resolve => { - commit('DEL_RIGHT_VIEWS', view) - resolve([...state.visitedViews]) - }) - }, - delLeftTags({ commit }, view) { - return new Promise(resolve => { - commit('DEL_LEFT_VIEWS', view) - resolve([...state.visitedViews]) - }) - }, -} - -export default { - namespaced: true, - state, - mutations, - actions -} diff --git a/mes-ui/src/store/modules/user.js b/mes-ui/src/store/modules/user.js deleted file mode 100644 index ab0a6fe..0000000 --- a/mes-ui/src/store/modules/user.js +++ /dev/null @@ -1,96 +0,0 @@ -import { login, logout, getInfo } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' - -const user = { - state: { - token: getToken(), - name: '', - avatar: '', - roles: [], - permissions: [] - }, - - mutations: { - SET_TOKEN: (state, token) => { - state.token = token - }, - SET_NAME: (state, name) => { - state.name = name - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar - }, - SET_ROLES: (state, roles) => { - state.roles = roles - }, - SET_PERMISSIONS: (state, permissions) => { - state.permissions = permissions - } - }, - - actions: { - // 登录 - Login({ commit }, userInfo) { - const username = userInfo.username.trim() - const password = userInfo.password - const code = userInfo.code - const uuid = userInfo.uuid - return new Promise((resolve, reject) => { - login(username, password, code, uuid).then(res => { - setToken(res.token) - commit('SET_TOKEN', res.token) - resolve() - }).catch(error => { - reject(error) - }) - }) - }, - - // 获取用户信息 - GetInfo({ commit, state }) { - return new Promise((resolve, reject) => { - getInfo().then(res => { - const user = res.user - const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; - if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 - commit('SET_ROLES', res.roles) - commit('SET_PERMISSIONS', res.permissions) - } else { - commit('SET_ROLES', ['ROLE_DEFAULT']) - } - commit('SET_NAME', user.userName) - commit('SET_AVATAR', avatar) - resolve(res) - }).catch(error => { - reject(error) - }) - }) - }, - - // 退出系统 - LogOut({ commit, state }) { - return new Promise((resolve, reject) => { - logout(state.token).then(() => { - commit('SET_TOKEN', '') - commit('SET_ROLES', []) - commit('SET_PERMISSIONS', []) - removeToken() - resolve() - }).catch(error => { - reject(error) - }) - }) - }, - - // 前端 登出 - FedLogOut({ commit }) { - return new Promise(resolve => { - commit('SET_TOKEN', '') - removeToken() - resolve() - }) - } - } -} - -export default user diff --git a/mes-ui/src/utils/auth.js b/mes-ui/src/utils/auth.js deleted file mode 100644 index 08a43d6..0000000 --- a/mes-ui/src/utils/auth.js +++ /dev/null @@ -1,15 +0,0 @@ -import Cookies from 'js-cookie' - -const TokenKey = 'Admin-Token' - -export function getToken() { - return Cookies.get(TokenKey) -} - -export function setToken(token) { - return Cookies.set(TokenKey, token) -} - -export function removeToken() { - return Cookies.remove(TokenKey) -} diff --git a/mes-ui/src/utils/dict/Dict.js b/mes-ui/src/utils/dict/Dict.js deleted file mode 100644 index 104bd6e..0000000 --- a/mes-ui/src/utils/dict/Dict.js +++ /dev/null @@ -1,82 +0,0 @@ -import Vue from 'vue' -import { mergeRecursive } from "@/utils/ruoyi"; -import DictMeta from './DictMeta' -import DictData from './DictData' - -const DEFAULT_DICT_OPTIONS = { - types: [], -} - -/** - * @classdesc 字典 - * @property {Object} label 标签对象,内部属性名为字典类型名称 - * @property {Object} dict 字段数组,内部属性名为字典类型名称 - * @property {Array.} _dictMetas 字典元数据数组 - */ -export default class Dict { - constructor() { - this.owner = null - this.label = {} - this.type = {} - } - - init(options) { - if (options instanceof Array) { - options = { types: options } - } - const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options) - if (opts.types === undefined) { - throw new Error('need dict types') - } - const ps = [] - this._dictMetas = opts.types.map(t => DictMeta.parse(t)) - this._dictMetas.forEach(dictMeta => { - const type = dictMeta.type - Vue.set(this.label, type, {}) - Vue.set(this.type, type, []) - if (dictMeta.lazy) { - return - } - ps.push(loadDict(this, dictMeta)) - }) - return Promise.all(ps) - } - - /** - * 重新加载字典 - * @param {String} type 字典类型 - */ - reloadDict(type) { - const dictMeta = this._dictMetas.find(e => e.type === type) - if (dictMeta === undefined) { - return Promise.reject(`the dict meta of ${type} was not found`) - } - return loadDict(this, dictMeta) - } -} - -/** - * 加载字典 - * @param {Dict} dict 字典 - * @param {DictMeta} dictMeta 字典元数据 - * @returns {Promise} - */ -function loadDict(dict, dictMeta) { - return dictMeta.request(dictMeta) - .then(response => { - const type = dictMeta.type - let dicts = dictMeta.responseConverter(response, dictMeta) - if (!(dicts instanceof Array)) { - console.error('the return of responseConverter must be Array.') - dicts = [] - } else if (dicts.filter(d => d instanceof DictData).length !== dicts.length) { - console.error('the type of elements in dicts must be DictData') - dicts = [] - } - dict.type[type].splice(0, Number.MAX_SAFE_INTEGER, ...dicts) - dicts.forEach(d => { - Vue.set(dict.label[type], d.value, d.label) - }) - return dicts - }) -} diff --git a/mes-ui/src/utils/dict/DictConverter.js b/mes-ui/src/utils/dict/DictConverter.js deleted file mode 100644 index 0cf5df8..0000000 --- a/mes-ui/src/utils/dict/DictConverter.js +++ /dev/null @@ -1,17 +0,0 @@ -import DictOptions from './DictOptions' -import DictData from './DictData' - -export default function(dict, dictMeta) { - const label = determineDictField(dict, dictMeta.labelField, ...DictOptions.DEFAULT_LABEL_FIELDS) - const value = determineDictField(dict, dictMeta.valueField, ...DictOptions.DEFAULT_VALUE_FIELDS) - return new DictData(dict[label], dict[value], dict) -} - -/** - * 确定字典字段 - * @param {DictData} dict - * @param {...String} fields - */ -function determineDictField(dict, ...fields) { - return fields.find(f => Object.prototype.hasOwnProperty.call(dict, f)) -} diff --git a/mes-ui/src/utils/dict/DictData.js b/mes-ui/src/utils/dict/DictData.js deleted file mode 100644 index afc763e..0000000 --- a/mes-ui/src/utils/dict/DictData.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @classdesc 字典数据 - * @property {String} label 标签 - * @property {*} value 标签 - * @property {Object} raw 原始数据 - */ -export default class DictData { - constructor(label, value, raw) { - this.label = label - this.value = value - this.raw = raw - } -} diff --git a/mes-ui/src/utils/dict/DictMeta.js b/mes-ui/src/utils/dict/DictMeta.js deleted file mode 100644 index 9779daa..0000000 --- a/mes-ui/src/utils/dict/DictMeta.js +++ /dev/null @@ -1,38 +0,0 @@ -import { mergeRecursive } from "@/utils/ruoyi"; -import DictOptions from './DictOptions' - -/** - * @classdesc 字典元数据 - * @property {String} type 类型 - * @property {Function} request 请求 - * @property {String} label 标签字段 - * @property {String} value 值字段 - */ -export default class DictMeta { - constructor(options) { - this.type = options.type - this.request = options.request - this.responseConverter = options.responseConverter - this.labelField = options.labelField - this.valueField = options.valueField - this.lazy = options.lazy === true - } -} - - -/** - * 解析字典元数据 - * @param {Object} options - * @returns {DictMeta} - */ -DictMeta.parse= function(options) { - let opts = null - if (typeof options === 'string') { - opts = DictOptions.metas[options] || {} - opts.type = options - } else if (typeof options === 'object') { - opts = options - } - opts = mergeRecursive(DictOptions.metas['*'], opts) - return new DictMeta(opts) -} diff --git a/mes-ui/src/utils/dict/DictOptions.js b/mes-ui/src/utils/dict/DictOptions.js deleted file mode 100644 index 338a94e..0000000 --- a/mes-ui/src/utils/dict/DictOptions.js +++ /dev/null @@ -1,51 +0,0 @@ -import { mergeRecursive } from "@/utils/ruoyi"; -import dictConverter from './DictConverter' - -export const options = { - metas: { - '*': { - /** - * 字典请求,方法签名为function(dictMeta: DictMeta): Promise - */ - request: (dictMeta) => { - console.log(`load dict ${dictMeta.type}`) - return Promise.resolve([]) - }, - /** - * 字典响应数据转换器,方法签名为function(response: Object, dictMeta: DictMeta): DictData - */ - responseConverter, - labelField: 'label', - valueField: 'value', - }, - }, - /** - * 默认标签字段 - */ - DEFAULT_LABEL_FIELDS: ['label', 'name', 'title'], - /** - * 默认值字段 - */ - DEFAULT_VALUE_FIELDS: ['value', 'id', 'uid', 'key'], -} - -/** - * 映射字典 - * @param {Object} response 字典数据 - * @param {DictMeta} dictMeta 字典元数据 - * @returns {DictData} - */ -function responseConverter(response, dictMeta) { - const dicts = response.content instanceof Array ? response.content : response - if (dicts === undefined) { - console.warn(`no dict data of "${dictMeta.type}" found in the response`) - return [] - } - return dicts.map(d => dictConverter(d, dictMeta)) -} - -export function mergeOptions(src) { - mergeRecursive(options, src) -} - -export default options diff --git a/mes-ui/src/utils/dict/index.js b/mes-ui/src/utils/dict/index.js deleted file mode 100644 index 215eb9e..0000000 --- a/mes-ui/src/utils/dict/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import Dict from './Dict' -import { mergeOptions } from './DictOptions' - -export default function(Vue, options) { - mergeOptions(options) - Vue.mixin({ - data() { - if (this.$options === undefined || this.$options.dicts === undefined || this.$options.dicts === null) { - return {} - } - const dict = new Dict() - dict.owner = this - return { - dict - } - }, - created() { - if (!(this.dict instanceof Dict)) { - return - } - options.onCreated && options.onCreated(this.dict) - this.dict.init(this.$options.dicts).then(() => { - options.onReady && options.onReady(this.dict) - this.$nextTick(() => { - this.$emit('dictReady', this.dict) - if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) { - this.$options.methods.onDictReady.call(this, this.dict) - } - }) - }) - }, - }) -} diff --git a/mes-ui/src/utils/errorCode.js b/mes-ui/src/utils/errorCode.js deleted file mode 100644 index d2111ee..0000000 --- a/mes-ui/src/utils/errorCode.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - '401': '认证失败,无法访问系统资源', - '403': '当前操作没有权限', - '404': '访问资源不存在', - 'default': '系统未知错误,请反馈给管理员' -} diff --git a/mes-ui/src/utils/generator/config.js b/mes-ui/src/utils/generator/config.js deleted file mode 100644 index 7abf227..0000000 --- a/mes-ui/src/utils/generator/config.js +++ /dev/null @@ -1,438 +0,0 @@ -export const formConf = { - formRef: 'elForm', - formModel: 'formData', - size: 'medium', - labelPosition: 'right', - labelWidth: 100, - formRules: 'rules', - gutter: 15, - disabled: false, - span: 24, - formBtns: true -} - -export const inputComponents = [ - { - label: '单行文本', - tag: 'el-input', - tagIcon: 'input', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': '', - 'suffix-icon': '', - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '多行文本', - tag: 'el-input', - tagIcon: 'textarea', - type: 'textarea', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - labelWidth: null, - autosize: { - minRows: 4, - maxRows: 4 - }, - style: { width: '100%' }, - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '密码', - tag: 'el-input', - tagIcon: 'password', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - 'show-password': true, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': '', - 'suffix-icon': '', - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '计数器', - tag: 'el-input-number', - tagIcon: 'number', - placeholder: '', - defaultValue: undefined, - span: 24, - labelWidth: null, - min: undefined, - max: undefined, - step: undefined, - 'step-strictly': false, - precision: undefined, - 'controls-position': '', - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input-number' - } -] - -export const selectComponents = [ - { - label: '下拉选择', - tag: 'el-select', - tagIcon: 'select', - placeholder: '请选择', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - disabled: false, - required: true, - filterable: false, - multiple: false, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/select' - }, - { - label: '级联选择', - tag: 'el-cascader', - tagIcon: 'cascader', - placeholder: '请选择', - defaultValue: [], - span: 24, - labelWidth: null, - style: { width: '100%' }, - props: { - props: { - multiple: false - } - }, - 'show-all-levels': true, - disabled: false, - clearable: true, - filterable: false, - required: true, - options: [{ - id: 1, - value: 1, - label: '选项1', - children: [{ - id: 2, - value: 2, - label: '选项1-1' - }] - }], - dataType: 'dynamic', - labelKey: 'label', - valueKey: 'value', - childrenKey: 'children', - separator: '/', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/cascader' - }, - { - label: '单选框组', - tag: 'el-radio-group', - tagIcon: 'radio', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: {}, - optionType: 'default', - border: false, - size: 'medium', - disabled: false, - required: true, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/radio' - }, - { - label: '多选框组', - tag: 'el-checkbox-group', - tagIcon: 'checkbox', - defaultValue: [], - span: 24, - labelWidth: null, - style: {}, - optionType: 'default', - border: false, - size: 'medium', - disabled: false, - required: true, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/checkbox' - }, - { - label: '开关', - tag: 'el-switch', - tagIcon: 'switch', - defaultValue: false, - span: 24, - labelWidth: null, - style: {}, - disabled: false, - required: true, - 'active-text': '', - 'inactive-text': '', - 'active-color': null, - 'inactive-color': null, - 'active-value': true, - 'inactive-value': false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/switch' - }, - { - label: '滑块', - tag: 'el-slider', - tagIcon: 'slider', - defaultValue: null, - span: 24, - labelWidth: null, - disabled: false, - required: true, - min: 0, - max: 100, - step: 1, - 'show-stops': false, - range: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/slider' - }, - { - label: '时间选择', - tag: 'el-time-picker', - tagIcon: 'time', - placeholder: '请选择', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - 'picker-options': { - selectableRange: '00:00:00-23:59:59' - }, - format: 'HH:mm:ss', - 'value-format': 'HH:mm:ss', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' - }, - { - label: '时间范围', - tag: 'el-time-picker', - tagIcon: 'time-range', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - 'is-range': true, - 'range-separator': '至', - 'start-placeholder': '开始时间', - 'end-placeholder': '结束时间', - format: 'HH:mm:ss', - 'value-format': 'HH:mm:ss', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' - }, - { - label: '日期选择', - tag: 'el-date-picker', - tagIcon: 'date', - placeholder: '请选择', - defaultValue: null, - type: 'date', - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - format: 'yyyy-MM-dd', - 'value-format': 'yyyy-MM-dd', - readonly: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' - }, - { - label: '日期范围', - tag: 'el-date-picker', - tagIcon: 'date-range', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - type: 'daterange', - 'range-separator': '至', - 'start-placeholder': '开始日期', - 'end-placeholder': '结束日期', - disabled: false, - clearable: true, - required: true, - format: 'yyyy-MM-dd', - 'value-format': 'yyyy-MM-dd', - readonly: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' - }, - { - label: '评分', - tag: 'el-rate', - tagIcon: 'rate', - defaultValue: 0, - span: 24, - labelWidth: null, - style: {}, - max: 5, - 'allow-half': false, - 'show-text': false, - 'show-score': false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/rate' - }, - { - label: '颜色选择', - tag: 'el-color-picker', - tagIcon: 'color', - defaultValue: null, - labelWidth: null, - 'show-alpha': false, - 'color-format': '', - disabled: false, - required: true, - size: 'medium', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/color-picker' - }, - { - label: '上传', - tag: 'el-upload', - tagIcon: 'upload', - action: 'https://jsonplaceholder.typicode.com/posts/', - defaultValue: null, - labelWidth: null, - disabled: false, - required: true, - accept: '', - name: 'file', - 'auto-upload': true, - showTip: false, - buttonText: '点击上传', - fileSize: 2, - sizeUnit: 'MB', - 'list-type': 'text', - multiple: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/upload' - } -] - -export const layoutComponents = [ - { - layout: 'rowFormItem', - tagIcon: 'row', - type: 'default', - justify: 'start', - align: 'top', - label: '行容器', - layoutTree: true, - children: [], - document: 'https://element.eleme.cn/#/zh-CN/component/layout' - }, - { - layout: 'colFormItem', - label: '按钮', - changeTag: true, - labelWidth: null, - tag: 'el-button', - tagIcon: 'button', - span: 24, - default: '主要按钮', - type: 'primary', - icon: 'el-icon-search', - size: 'medium', - disabled: false, - document: 'https://element.eleme.cn/#/zh-CN/component/button' - } -] - -// 组件rule的触发方式,无触发方式的组件不生成rule -export const trigger = { - 'el-input': 'blur', - 'el-input-number': 'blur', - 'el-select': 'change', - 'el-radio-group': 'change', - 'el-checkbox-group': 'change', - 'el-cascader': 'change', - 'el-time-picker': 'change', - 'el-date-picker': 'change', - 'el-rate': 'change' -} diff --git a/mes-ui/src/utils/generator/css.js b/mes-ui/src/utils/generator/css.js deleted file mode 100644 index c1c62e6..0000000 --- a/mes-ui/src/utils/generator/css.js +++ /dev/null @@ -1,18 +0,0 @@ -const styles = { - 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', - 'el-upload': '.el-upload__tip{line-height: 1.2;}' -} - -function addCss(cssList, el) { - const css = styles[el.tag] - css && cssList.indexOf(css) === -1 && cssList.push(css) - if (el.children) { - el.children.forEach(el2 => addCss(cssList, el2)) - } -} - -export function makeUpCss(conf) { - const cssList = [] - conf.fields.forEach(el => addCss(cssList, el)) - return cssList.join('\n') -} diff --git a/mes-ui/src/utils/generator/drawingDefault.js b/mes-ui/src/utils/generator/drawingDefault.js deleted file mode 100644 index 09f133c..0000000 --- a/mes-ui/src/utils/generator/drawingDefault.js +++ /dev/null @@ -1,29 +0,0 @@ -export default [ - { - layout: 'colFormItem', - tagIcon: 'input', - label: '手机号', - vModel: 'mobile', - formId: 6, - tag: 'el-input', - placeholder: '请输入手机号', - defaultValue: '', - span: 24, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': 'el-icon-mobile', - 'suffix-icon': '', - maxlength: 11, - 'show-word-limit': true, - readonly: false, - disabled: false, - required: true, - changeTag: true, - regList: [{ - pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', - message: '手机号格式错误' - }] - } -] diff --git a/mes-ui/src/utils/generator/html.js b/mes-ui/src/utils/generator/html.js deleted file mode 100644 index 9bcc536..0000000 --- a/mes-ui/src/utils/generator/html.js +++ /dev/null @@ -1,359 +0,0 @@ -/* eslint-disable max-len */ -import { trigger } from './config' - -let confGlobal -let someSpanIsNot24 - -export function dialogWrapper(str) { - return ` - ${str} -

- 取消 - 确定 -
- ` -} - -export function vueTemplate(str) { - return `` -} - -export function vueScript(str) { - return `` -} - -export function cssStyle(cssStr) { - return `` -} - -function buildFormTemplate(conf, child, type) { - let labelPosition = '' - if (conf.labelPosition !== 'right') { - labelPosition = `label-position="${conf.labelPosition}"` - } - const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : '' - let str = ` - ${child} - ${buildFromBtns(conf, type)} - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - return str -} - -function buildFromBtns(conf, type) { - let str = '' - if (conf.formBtns && type === 'file') { - str = ` - 提交 - 重置 - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - } - return str -} - -// span不为24的用el-col包裹 -function colWrapper(element, str) { - if (someSpanIsNot24 || element.span !== 24) { - return ` - ${str} - ` - } - return str -} - -const layouts = { - colFormItem(element) { - let labelWidth = '' - if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) { - labelWidth = `label-width="${element.labelWidth}px"` - } - const required = !trigger[element.tag] && element.required ? 'required' : '' - const tagDom = tags[element.tag] ? tags[element.tag](element) : null - let str = ` - ${tagDom} - ` - str = colWrapper(element, str) - return str - }, - rowFormItem(element) { - const type = element.type === 'default' ? '' : `type="${element.type}"` - const justify = element.type === 'default' ? '' : `justify="${element.justify}"` - const align = element.type === 'default' ? '' : `align="${element.align}"` - const gutter = element.gutter ? `gutter="${element.gutter}"` : '' - const children = element.children.map(el => layouts[el.layout](el)) - let str = ` - ${children.join('\n')} - ` - str = colWrapper(element, str) - return str - } -} - -const tags = { - 'el-button': el => { - const { - tag, disabled - } = attrBuilder(el) - const type = el.type ? `type="${el.type}"` : '' - const icon = el.icon ? `icon="${el.icon}"` : '' - const size = el.size ? `size="${el.size}"` : '' - let child = buildElButtonChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` - }, - 'el-input': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : '' - const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : '' - const readonly = el.readonly ? 'readonly' : '' - const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : '' - const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : '' - const showPassword = el['show-password'] ? 'show-password' : '' - const type = el.type ? `type="${el.type}"` : '' - const autosize = el.autosize && el.autosize.minRows - ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"` - : '' - let child = buildElInputChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}` - }, - 'el-input-number': el => { - const { disabled, vModel, placeholder } = attrBuilder(el) - const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : '' - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const stepStrictly = el['step-strictly'] ? 'step-strictly' : '' - const precision = el.precision ? `:precision='${el.precision}'` : '' - - return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>` - }, - 'el-select': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const filterable = el.filterable ? 'filterable' : '' - const multiple = el.multiple ? 'multiple' : '' - let child = buildElSelectChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}` - }, - 'el-radio-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - let child = buildElRadioGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${size} ${disabled}>${child}` - }, - 'el-checkbox-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const min = el.min ? `:min="${el.min}"` : '' - const max = el.max ? `:max="${el.max}"` : '' - let child = buildElCheckboxGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}` - }, - 'el-switch': el => { - const { disabled, vModel } = attrBuilder(el) - const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : '' - const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : '' - const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : '' - const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : '' - const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : '' - const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : '' - - return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>` - }, - 'el-cascader': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const options = el.options ? `:options="${el.vModel}Options"` : '' - const props = el.props ? `:props="${el.vModel}Props"` : '' - const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"' - const filterable = el.filterable ? 'filterable' : '' - const separator = el.separator === '/' ? '' : `separator="${el.separator}"` - - return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>` - }, - 'el-slider': el => { - const { disabled, vModel } = attrBuilder(el) - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const range = el.range ? 'range' : '' - const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : '' - - return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>` - }, - 'el-time-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const isRange = el['is-range'] ? 'is-range' : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : '' - - return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>` - }, - 'el-date-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const type = el.type === 'date' ? '' : `type="${el.type}"` - const readonly = el.readonly ? 'readonly' : '' - - return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>` - }, - 'el-rate': el => { - const { disabled, vModel } = attrBuilder(el) - const max = el.max ? `:max='${el.max}'` : '' - const allowHalf = el['allow-half'] ? 'allow-half' : '' - const showText = el['show-text'] ? 'show-text' : '' - const showScore = el['show-score'] ? 'show-score' : '' - - return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>` - }, - 'el-color-picker': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const showAlpha = el['show-alpha'] ? 'show-alpha' : '' - const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : '' - - return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>` - }, - 'el-upload': el => { - const disabled = el.disabled ? ':disabled=\'true\'' : '' - const action = el.action ? `:action="${el.vModel}Action"` : '' - const multiple = el.multiple ? 'multiple' : '' - const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : '' - const accept = el.accept ? `accept="${el.accept}"` : '' - const name = el.name !== 'file' ? `name="${el.name}"` : '' - const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : '' - const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"` - const fileList = `:file-list="${el.vModel}fileList"` - const ref = `ref="${el.vModel}"` - let child = buildElUploadChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}` - } -} - -function attrBuilder(el) { - return { - vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`, - clearable: el.clearable ? 'clearable' : '', - placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '', - width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '', - disabled: el.disabled ? ':disabled=\'true\'' : '' - } -} - -// el-buttin 子级 -function buildElButtonChild(conf) { - const children = [] - if (conf.default) { - children.push(conf.default) - } - return children.join('\n') -} - -// el-input innerHTML -function buildElInputChild(conf) { - const children = [] - if (conf.prepend) { - children.push(``) - } - if (conf.append) { - children.push(``) - } - return children.join('\n') -} - -function buildElSelectChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - children.push(``) - } - return children.join('\n') -} - -function buildElRadioGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElCheckboxGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElUploadChild(conf) { - const list = [] - if (conf['list-type'] === 'picture-card') list.push('') - else list.push(`${conf.buttonText}`) - if (conf.showTip) list.push(`
只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`) - return list.join('\n') -} - -export function makeUpHtml(conf, type) { - const htmlList = [] - confGlobal = conf - someSpanIsNot24 = conf.fields.some(item => item.span !== 24) - conf.fields.forEach(el => { - htmlList.push(layouts[el.layout](el)) - }) - const htmlStr = htmlList.join('\n') - - let temp = buildFormTemplate(conf, htmlStr, type) - if (type === 'dialog') { - temp = dialogWrapper(temp) - } - confGlobal = null - return temp -} diff --git a/mes-ui/src/utils/generator/icon.json b/mes-ui/src/utils/generator/icon.json deleted file mode 100644 index 2d9999a..0000000 --- a/mes-ui/src/utils/generator/icon.json +++ /dev/null @@ -1 +0,0 @@ -["platform-eleme","eleme","delete-solid","delete","s-tools","setting","user-solid","user","phone","phone-outline","more","more-outline","star-on","star-off","s-goods","goods","warning","warning-outline","question","info","remove","circle-plus","success","error","zoom-in","zoom-out","remove-outline","circle-plus-outline","circle-check","circle-close","s-help","help","minus","plus","check","close","picture","picture-outline","picture-outline-round","upload","upload2","download","camera-solid","camera","video-camera-solid","video-camera","message-solid","bell","s-cooperation","s-order","s-platform","s-fold","s-unfold","s-operation","s-promotion","s-home","s-release","s-ticket","s-management","s-open","s-shop","s-marketing","s-flag","s-comment","s-finance","s-claim","s-custom","s-opportunity","s-data","s-check","s-grid","menu","share","d-caret","caret-left","caret-right","caret-bottom","caret-top","bottom-left","bottom-right","back","right","bottom","top","top-left","top-right","arrow-left","arrow-right","arrow-down","arrow-up","d-arrow-left","d-arrow-right","video-pause","video-play","refresh","refresh-right","refresh-left","finished","sort","sort-up","sort-down","rank","loading","view","c-scale-to-original","date","edit","edit-outline","folder","folder-opened","folder-add","folder-remove","folder-delete","folder-checked","tickets","document-remove","document-delete","document-copy","document-checked","document","document-add","printer","paperclip","takeaway-box","search","monitor","attract","mobile","scissors","umbrella","headset","brush","mouse","coordinate","magic-stick","reading","data-line","data-board","pie-chart","data-analysis","collection-tag","film","suitcase","suitcase-1","receiving","collection","files","notebook-1","notebook-2","toilet-paper","office-building","school","table-lamp","house","no-smoking","smoking","shopping-cart-full","shopping-cart-1","shopping-cart-2","shopping-bag-1","shopping-bag-2","sold-out","sell","present","box","bank-card","money","coin","wallet","discount","price-tag","news","guide","male","female","thumb","cpu","link","connection","open","turn-off","set-up","chat-round","chat-line-round","chat-square","chat-dot-round","chat-dot-square","chat-line-square","message","postcard","position","turn-off-microphone","microphone","close-notification","bangzhu","time","odometer","crop","aim","switch-button","full-screen","copy-document","mic","stopwatch","medal-1","medal","trophy","trophy-1","first-aid-kit","discover","place","location","location-outline","location-information","add-location","delete-location","map-location","alarm-clock","timer","watch-1","watch","lock","unlock","key","service","mobile-phone","bicycle","truck","ship","basketball","football","soccer","baseball","wind-power","light-rain","lightning","heavy-rain","sunrise","sunrise-1","sunset","sunny","cloudy","partly-cloudy","cloudy-and-sunny","moon","moon-night","dish","dish-1","food","chicken","fork-spoon","knife-fork","burger","tableware","sugar","dessert","ice-cream","hot-water","water-cup","coffee-cup","cold-drink","goblet","goblet-full","goblet-square","goblet-square-full","refrigerator","grape","watermelon","cherry","apple","pear","orange","coffee","ice-tea","ice-drink","milk-tea","potato-strips","lollipop","ice-cream-square","ice-cream-round"] \ No newline at end of file diff --git a/mes-ui/src/utils/generator/js.js b/mes-ui/src/utils/generator/js.js deleted file mode 100644 index 35e3e21..0000000 --- a/mes-ui/src/utils/generator/js.js +++ /dev/null @@ -1,236 +0,0 @@ -import { isArray } from 'util' -import { exportDefault, titleCase } from '@/utils/index' -import { trigger } from './config' - -const units = { - KB: '1024', - MB: '1024 / 1024', - GB: '1024 / 1024 / 1024' -} -let confGlobal -const inheritAttrs = { - file: '', - dialog: 'inheritAttrs: false,' -} - - -export function makeUpJs(conf, type) { - confGlobal = conf = JSON.parse(JSON.stringify(conf)) - const dataList = [] - const ruleList = [] - const optionsList = [] - const propsList = [] - const methodList = mixinMethod(type) - const uploadVarList = [] - - conf.fields.forEach(el => { - buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - - const script = buildexport( - conf, - type, - dataList.join('\n'), - ruleList.join('\n'), - optionsList.join('\n'), - uploadVarList.join('\n'), - propsList.join('\n'), - methodList.join('\n') - ) - confGlobal = null - return script -} - -function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) { - buildData(el, dataList) - buildRules(el, ruleList) - - if (el.options && el.options.length) { - buildOptions(el, optionsList) - if (el.dataType === 'dynamic') { - const model = `${el.vModel}Options` - const options = titleCase(model) - buildOptionMethod(`get${options}`, model, methodList) - } - } - - if (el.props && el.props.props) { - buildProps(el, propsList) - } - - if (el.action && el.tag === 'el-upload') { - uploadVarList.push( - `${el.vModel}Action: '${el.action}', - ${el.vModel}fileList: [],` - ) - methodList.push(buildBeforeUpload(el)) - if (!el['auto-upload']) { - methodList.push(buildSubmitUpload(el)) - } - } - - if (el.children) { - el.children.forEach(el2 => { - buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - } -} - -function mixinMethod(type) { - const list = []; const - minxins = { - file: confGlobal.formBtns ? { - submitForm: `submitForm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - // TODO 提交表单 - }) - },`, - resetForm: `resetForm() { - this.$refs['${confGlobal.formRef}'].resetFields() - },` - } : null, - dialog: { - onOpen: 'onOpen() {},', - onClose: `onClose() { - this.$refs['${confGlobal.formRef}'].resetFields() - },`, - close: `close() { - this.$emit('update:visible', false) - },`, - handleConfirm: `handleConfirm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - this.close() - }) - },` - } - } - - const methods = minxins[type] - if (methods) { - Object.keys(methods).forEach(key => { - list.push(methods[key]) - }) - } - - return list -} - -function buildData(conf, dataList) { - if (conf.vModel === undefined) return - let defaultValue - if (typeof (conf.defaultValue) === 'string' && !conf.multiple) { - defaultValue = `'${conf.defaultValue}'` - } else { - defaultValue = `${JSON.stringify(conf.defaultValue)}` - } - dataList.push(`${conf.vModel}: ${defaultValue},`) -} - -function buildRules(conf, ruleList) { - if (conf.vModel === undefined) return - const rules = [] - if (trigger[conf.tag]) { - if (conf.required) { - const type = isArray(conf.defaultValue) ? 'type: \'array\',' : '' - let message = isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder - if (message === undefined) message = `${conf.label}不能为空` - rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`) - } - if (conf.regList && isArray(conf.regList)) { - conf.regList.forEach(item => { - if (item.pattern) { - rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`) - } - }) - } - ruleList.push(`${conf.vModel}: [${rules.join(',')}],`) - } -} - -function buildOptions(conf, optionsList) { - if (conf.vModel === undefined) return - if (conf.dataType === 'dynamic') { conf.options = [] } - const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},` - optionsList.push(str) -} - -function buildProps(conf, propsList) { - if (conf.dataType === 'dynamic') { - conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey) - conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey) - conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey) - } - const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},` - propsList.push(str) -} - -function buildBeforeUpload(conf) { - const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const - returnList = [] - if (conf.fileSize) { - rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize} - if(!isRightSize){ - this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}') - }` - returnList.push('isRightSize') - } - if (conf.accept) { - acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type) - if(!isAccept){ - this.$message.error('应该选择${conf.accept}类型的文件') - }` - returnList.push('isAccept') - } - const str = `${conf.vModel}BeforeUpload(file) { - ${rightSizeCode} - ${acceptCode} - return ${returnList.join('&&')} - },` - return returnList.length ? str : '' -} - -function buildSubmitUpload(conf) { - const str = `submitUpload() { - this.$refs['${conf.vModel}'].submit() - },` - return str -} - -function buildOptionMethod(methodName, model, methodList) { - const str = `${methodName}() { - // TODO 发起请求获取数据 - this.${model} - },` - methodList.push(str) -} - -function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) { - const str = `${exportDefault}{ - ${inheritAttrs[type]} - components: {}, - props: [], - data () { - return { - ${conf.formModel}: { - ${data} - }, - ${conf.formRules}: { - ${rules} - }, - ${uploadVar} - ${selectOptions} - ${props} - } - }, - computed: {}, - watch: {}, - created () {}, - mounted () {}, - methods: { - ${methods} - } -}` - return str -} diff --git a/mes-ui/src/utils/generator/render.js b/mes-ui/src/utils/generator/render.js deleted file mode 100644 index e8640f0..0000000 --- a/mes-ui/src/utils/generator/render.js +++ /dev/null @@ -1,126 +0,0 @@ -import { makeMap } from '@/utils/index' - -// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js -const isAttr = makeMap( - 'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,' - + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,' - + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,' - + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,' - + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,' - + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,' - + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,' - + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,' - + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,' - + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,' - + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,' - + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,' - + 'target,title,type,usemap,value,width,wrap' -) - -function vModel(self, dataObject, defaultValue) { - dataObject.props.value = defaultValue - - dataObject.on.input = val => { - self.$emit('input', val) - } -} - -const componentChild = { - 'el-button': { - default(h, conf, key) { - return conf[key] - }, - }, - 'el-input': { - prepend(h, conf, key) { - return - }, - append(h, conf, key) { - return - } - }, - 'el-select': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - list.push() - }) - return list - } - }, - 'el-radio-group': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - if (conf.optionType === 'button') list.push({item.label}) - else list.push({item.label}) - }) - return list - } - }, - 'el-checkbox-group': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - if (conf.optionType === 'button') { - list.push({item.label}) - } else { - list.push({item.label}) - } - }) - return list - } - }, - 'el-upload': { - 'list-type': (h, conf, key) => { - const list = [] - if (conf['list-type'] === 'picture-card') { - list.push() - } else { - list.push({conf.buttonText}) - } - if (conf.showTip) { - list.push(
只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件
) - } - return list - } - } -} - -export default { - render(h) { - const dataObject = { - attrs: {}, - props: {}, - on: {}, - style: {} - } - const confClone = JSON.parse(JSON.stringify(this.conf)) - const children = [] - - const childObjs = componentChild[confClone.tag] - if (childObjs) { - Object.keys(childObjs).forEach(key => { - const childFunc = childObjs[key] - if (confClone[key]) { - children.push(childFunc(h, confClone, key)) - } - }) - } - - Object.keys(confClone).forEach(key => { - const val = confClone[key] - if (key === 'vModel') { - vModel(this, dataObject, confClone.defaultValue) - } else if (dataObject[key]) { - dataObject[key] = val - } else if (!isAttr(key)) { - dataObject.props[key] = val - } else { - dataObject.attrs[key] = val - } - }) - return h(this.conf.tag, dataObject, children) - }, - props: ['conf'] -} diff --git a/mes-ui/src/utils/index.js b/mes-ui/src/utils/index.js deleted file mode 100644 index 4e65504..0000000 --- a/mes-ui/src/utils/index.js +++ /dev/null @@ -1,390 +0,0 @@ -import { parseTime } from './ruoyi' - -/** - * 表格时间格式化 - */ -export function formatDate(cellValue) { - if (cellValue == null || cellValue == "") return ""; - var date = new Date(cellValue) - var year = date.getFullYear() - var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 - var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() - var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() - var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() - var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() - return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (('' + time).length === 10) { - time = parseInt(time) * 1000 - } else { - time = +time - } - const d = new Date(time) - const now = Date.now() - - const diff = (now - d) / 1000 - - if (diff < 30) { - return '刚刚' - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + '分钟前' - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + '小时前' - } else if (diff < 3600 * 24 * 2) { - return '1天前' - } - if (option) { - return parseTime(time, option) - } else { - return ( - d.getMonth() + - 1 + - '月' + - d.getDate() + - '日' + - d.getHours() + - '时' + - d.getMinutes() + - '分' - ) - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url - const search = url.substring(url.lastIndexOf('?') + 1) - const obj = {} - const reg = /([^?&=]+)=([^?&=]*)/g - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1) - let val = decodeURIComponent($2) - val = String(val) - obj[name] = val - return rs - }) - return obj -} - -/** - * @param {string} input value - * @returns {number} output value - */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i) - if (code > 0x7f && code <= 0x7ff) s++ - else if (code > 0x7ff && code <= 0xffff) s += 2 - if (code >= 0xDC00 && code <= 0xDFFF) i-- - } - return s -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = [] - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]) - } - } - return newArray -} - -/** - * @param {Object} json - * @returns {Array} - */ -export function param(json) { - if (!json) return '' - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return '' - return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) - }) - ).join('&') -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') - if (!search) { - return {} - } - const obj = {} - const searchArr = search.split('&') - searchArr.forEach(v => { - const index = v.indexOf('=') - if (index !== -1) { - const name = v.substring(0, index) - const val = v.substring(index + 1, v.length) - obj[name] = val - } - }) - return obj -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement('div') - div.innerHTML = val - return div.textContent || div.innerText -} - -/** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} - */ -export function objectMerge(target, source) { - if (typeof target !== 'object') { - target = {} - } - if (Array.isArray(source)) { - return source.slice() - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property] - if (typeof sourceProperty === 'object') { - target[property] = objectMerge(target[property], sourceProperty) - } else { - target[property] = sourceProperty - } - }) - return target -} - -/** - * @param {HTMLElement} element - * @param {string} className - */ -export function toggleClass(element, className) { - if (!element || !className) { - return - } - let classString = element.className - const nameIndex = classString.indexOf(className) - if (nameIndex === -1) { - classString += '' + className - } else { - classString = - classString.substr(0, nameIndex) + - classString.substr(nameIndex + className.length) - } - element.className = classString -} - -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === 'start') { - return new Date().getTime() - 3600 * 1000 * 24 * 90 - } else { - return new Date(new Date().toDateString()) - } -} - -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result - - const later = function() { - // 据上一次触发时间间隔 - const last = +new Date() - timestamp - - // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last) - } else { - timeout = null - // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 - if (!immediate) { - result = func.apply(context, args) - if (!timeout) context = args = null - } - } - } - - return function(...args) { - context = this - timestamp = +new Date() - const callNow = immediate && !timeout - // 如果延时不存在,重新设定延时 - if (!timeout) timeout = setTimeout(later, wait) - if (callNow) { - result = func.apply(context, args) - context = args = null - } - - return result - } -} - -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== 'object') { - throw new Error('error arguments', 'deepClone') - } - const targetObj = source.constructor === Array ? [] : {} - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = deepClone(source[keys]) - } else { - targetObj[keys] = source[keys] - } - }) - return targetObj -} - -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)) -} - -/** - * @returns {string} - */ -export function createUniqueString() { - const timestamp = +new Date() + '' - const randomNum = parseInt((1 + Math.random()) * 65536) + '' - return (+(randomNum + timestamp)).toString(32) -} - -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) -} - -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += ' ' + cls -} - -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') - ele.className = ele.className.replace(reg, ' ') - } -} - -export function makeMap(str, expectsLowerCase) { - const map = Object.create(null) - const list = str.split(',') - for (let i = 0; i < list.length; i++) { - map[list[i]] = true - } - return expectsLowerCase - ? val => map[val.toLowerCase()] - : val => map[val] -} - -export const exportDefault = 'export default ' - -export const beautifierConf = { - html: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'separate', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: false, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - }, - js: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'normal', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: true, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - } -} - -// 首字母大小 -export function titleCase(str) { - return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) -} - -// 下划转驼峰 -export function camelCase(str) { - return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase()) -} - -export function isNumberStr(str) { - return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) -} - diff --git a/mes-ui/src/utils/jinzhong.js b/mes-ui/src/utils/jinzhong.js deleted file mode 100644 index ad647ba..0000000 --- a/mes-ui/src/utils/jinzhong.js +++ /dev/null @@ -1,20 +0,0 @@ -// 回显数据 -export function selectDictLabel(datas, value) { - if (value === undefined) { - return ""; - } - var actions = []; - - Object.keys(datas).some((key) => { - - if (datas[key].id == ('' + value)) { - actions.push(datas[key].name); - return true; - } - }) - if (actions.length === 0) { - actions.push(value); - } - return actions.join(''); -} - diff --git a/mes-ui/src/utils/jsencrypt.js b/mes-ui/src/utils/jsencrypt.js deleted file mode 100644 index 78d9523..0000000 --- a/mes-ui/src/utils/jsencrypt.js +++ /dev/null @@ -1,30 +0,0 @@ -import JSEncrypt from 'jsencrypt/bin/jsencrypt.min' - -// 密钥对生成 http://web.chacuo.net/netrsakeypair - -const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + - 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' - -const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + - '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + - 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' + - 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' + - 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' + - 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' + - 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' + - 'UP8iWi1Qw0Y=' - -// 加密 -export function encrypt(txt) { - const encryptor = new JSEncrypt() - encryptor.setPublicKey(publicKey) // 设置公钥 - return encryptor.encrypt(txt) // 对数据进行加密 -} - -// 解密 -export function decrypt(txt) { - const encryptor = new JSEncrypt() - encryptor.setPrivateKey(privateKey) // 设置私钥 - return encryptor.decrypt(txt) // 对数据进行解密 -} - diff --git a/mes-ui/src/utils/permission.js b/mes-ui/src/utils/permission.js deleted file mode 100644 index 1730e33..0000000 --- a/mes-ui/src/utils/permission.js +++ /dev/null @@ -1,51 +0,0 @@ -import store from '@/store' - -/** - * 字符权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkPermi(value) { - if (value && value instanceof Array && value.length > 0) { - const permissions = store.getters && store.getters.permissions - const permissionDatas = value - const all_permission = "*:*:*"; - - const hasPermission = permissions.some(permission => { - return all_permission === permission || permissionDatas.includes(permission) - }) - - if (!hasPermission) { - return false - } - return true - } else { - console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) - return false - } -} - -/** - * 角色权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkRole(value) { - if (value && value instanceof Array && value.length > 0) { - const roles = store.getters && store.getters.roles - const permissionRoles = value - const super_admin = "admin"; - - const hasRole = roles.some(role => { - return super_admin === role || permissionRoles.includes(role) - }) - - if (!hasRole) { - return false - } - return true - } else { - console.error(`need roles! Like checkRole="['admin','editor']"`) - return false - } -} \ No newline at end of file diff --git a/mes-ui/src/utils/request.js b/mes-ui/src/utils/request.js deleted file mode 100644 index 8797e3f..0000000 --- a/mes-ui/src/utils/request.js +++ /dev/null @@ -1,146 +0,0 @@ -import axios from 'axios' -import { Notification, MessageBox, Message, Loading } from 'element-ui' -import store from '@/store' -import { getToken } from '@/utils/auth' -import errorCode from '@/utils/errorCode' -import { tansParams, blobValidate } from "@/utils/ruoyi"; -import cache from '@/plugins/cache' -import { saveAs } from 'file-saver' - -let downloadLoadingInstance; -// 是否显示重新登录 -export let isRelogin = { show: false }; - -axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' -// 创建axios实例 -const service = axios.create({ - // axios中请求配置有baseURL选项,表示请求URL公共部分 - baseURL: process.env.VUE_APP_BASE_API, - // 超时 - timeout: 10000 -}) - -// request拦截器 -service.interceptors.request.use(config => { - // 是否需要设置 token - const isToken = (config.headers || {}).isToken === false - // 是否需要防止数据重复提交 - const isRepeatSubmit = (config.headers || {}).repeatSubmit === false - if (getToken() && !isToken) { - config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - // get请求映射params参数 - if (config.method === 'get' && config.params) { - let url = config.url + '?' + tansParams(config.params); - url = url.slice(0, -1); - config.params = {}; - config.url = url; - } - if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) { - const requestObj = { - url: config.url, - data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data, - time: new Date().getTime() - } - const sessionObj = cache.session.getJSON('sessionObj') - if (sessionObj === undefined || sessionObj === null || sessionObj === '') { - cache.session.setJSON('sessionObj', requestObj) - } else { - const s_url = sessionObj.url; // 请求地址 - const s_data = sessionObj.data; // 请求数据 - const s_time = sessionObj.time; // 请求时间 - const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 - if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { - const message = '数据正在处理,请勿重复提交'; - console.warn(`[${s_url}]: ` + message) - return Promise.reject(new Error(message)) - } else { - cache.session.setJSON('sessionObj', requestObj) - } - } - } - return config -}, error => { - console.log(error) - Promise.reject(error) -}) - -// 响应拦截器 -service.interceptors.response.use(res => { - // 未设置状态码则默认成功状态 - const code = res.data.code || 200; - // 获取错误信息 - const msg = errorCode[code] || res.data.msg || errorCode['default'] - // 二进制数据则直接返回 - if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') { - return res.data - } - if (code === 401) { - if (!isRelogin.show) { - isRelogin.show = true; - MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { - isRelogin.show = false; - store.dispatch('LogOut').then(() => { - location.href = '/index'; - }) - }).catch(() => { - isRelogin.show = false; - }); - } - return Promise.reject('无效的会话,或者会话已过期,请重新登录。') - } else if (code === 500) { - Message({ message: msg, type: 'error' }) - return Promise.reject(new Error(msg)) - } else if (code === 601) { - Message({ message: msg, type: 'warning' }) - return Promise.reject('error') - } else if (code !== 200) { - Notification.error({ title: msg }) - return Promise.reject('error') - } else { - return res.data - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "后端接口连接异常"; - } else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; - } - Message({ message: message, type: 'error', duration: 5 * 1000 }) - return Promise.reject(error) - } -) - -// 通用下载方法 -export function download(url, params, filename, config) { - downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", }) - return service.post(url, params, { - transformRequest: [(params) => { return tansParams(params) }], - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - responseType: 'blob', - ...config - }).then(async (data) => { - const isBlob = blobValidate(data); - if (isBlob) { - const blob = new Blob([data]) - saveAs(blob, filename) - } else { - const resText = await data.text(); - const rspObj = JSON.parse(resText); - const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'] - Message.error(errMsg); - } - downloadLoadingInstance.close(); - }).catch((r) => { - console.error(r) - Message.error('下载文件出现错误,请联系管理员!') - downloadLoadingInstance.close(); - }) -} - -export default service diff --git a/mes-ui/src/utils/ruoyi.js b/mes-ui/src/utils/ruoyi.js deleted file mode 100644 index 44bf9c4..0000000 --- a/mes-ui/src/utils/ruoyi.js +++ /dev/null @@ -1,233 +0,0 @@ - - -/** - * 通用js方法封装处理 - * Copyright (c) 2019 ruoyi - */ - -// 日期格式化 -export function parseTime(time, pattern) { - if (arguments.length === 0 || !time) { - return null - } - const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' - let date - if (typeof time === 'object') { - date = time - } else { - if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { - time = parseInt(time) - } else if (typeof time === 'string') { - time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), ''); - } - if ((typeof time === 'number') && (time.toString().length === 10)) { - time = time * 1000 - } - date = new Date(time) - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay() - } - const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { - let value = formatObj[key] - // Note: getDay() returns 0 on Sunday - if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } - if (result.length > 0 && value < 10) { - value = '0' + value - } - return value || 0 - }) - return time_str -} - -// 表单重置 -export function resetForm(refName) { - if (this.$refs[refName]) { - this.$refs[refName].resetFields(); - } -} - -// 添加日期范围 -export function addDateRange(params, dateRange, propName) { - let search = params; - search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}; - dateRange = Array.isArray(dateRange) ? dateRange : []; - if (typeof (propName) === 'undefined') { - search.params['beginTime'] = dateRange[0]; - search.params['endTime'] = dateRange[1]; - } else { - search.params['begin' + propName] = dateRange[0]; - search.params['end' + propName] = dateRange[1]; - } - return search; -} - -// 回显数据字典 -export function selectDictLabel(datas, value) { - if (value === undefined) { - return ""; - } - var actions = []; - Object.keys(datas).some((key) => { - if (datas[key].value == ('' + value)) { - actions.push(datas[key].label); - return true; - } - }) - if (actions.length === 0) { - actions.push(value); - } - return actions.join(''); -} - -// 回显数据字典(字符串、数组) -export function selectDictLabels(datas, value, separator) { - if (value === undefined || value.length ===0) { - return ""; - } - if (Array.isArray(value)) { - value = value.join(","); - } - var actions = []; - var currentSeparator = undefined === separator ? "," : separator; - var temp = value.split(currentSeparator); - Object.keys(value.split(currentSeparator)).some((val) => { - var match = false; - Object.keys(datas).some((key) => { - if (datas[key].value == ('' + temp[val])) { - actions.push(datas[key].label + currentSeparator); - match = true; - } - }) - if (!match) { - actions.push(temp[val] + currentSeparator); - } - }) - return actions.join('').substring(0, actions.join('').length - 1); -} - -// 字符串格式化(%s ) -export function sprintf(str) { - var args = arguments, flag = true, i = 1; - str = str.replace(/%s/g, function () { - var arg = args[i++]; - if (typeof arg === 'undefined') { - flag = false; - return ''; - } - return arg; - }); - return flag ? str : ''; -} - -// 转换字符串,undefined,null等转化为"" -export function parseStrEmpty(str) { - if (!str || str == "undefined" || str == "null") { - return ""; - } - return str; -} - -// 数据合并 -export function mergeRecursive(source, target) { - for (var p in target) { - try { - if (target[p].constructor == Object) { - source[p] = mergeRecursive(source[p], target[p]); - } else { - source[p] = target[p]; - } - } catch (e) { - source[p] = target[p]; - } - } - return source; -}; - -/** - * 构造树型结构数据 - * @param {*} data 数据源 - * @param {*} id id字段 默认 'id' - * @param {*} parentId 父节点字段 默认 'parentId' - * @param {*} children 孩子节点字段 默认 'children' - */ -export function handleTree(data, id, parentId, children) { - let config = { - id: id || 'id', - parentId: parentId || 'parentId', - childrenList: children || 'children' - }; - - var childrenListMap = {}; - var nodeIds = {}; - var tree = []; - - for (let d of data) { - let parentId = d[config.parentId]; - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = []; - } - nodeIds[d[config.id]] = d; - childrenListMap[parentId].push(d); - } - - for (let d of data) { - let parentId = d[config.parentId]; - if (nodeIds[parentId] == null) { - tree.push(d); - } - } - - for (let t of tree) { - adaptToChildrenList(t); - } - - function adaptToChildrenList(o) { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]]; - } - if (o[config.childrenList]) { - for (let c of o[config.childrenList]) { - adaptToChildrenList(c); - } - } - } - return tree; -} - -/** -* 参数处理 -* @param {*} params 参数 -*/ -export function tansParams(params) { - let result = '' - for (const propName of Object.keys(params)) { - const value = params[propName]; - var part = encodeURIComponent(propName) + "="; - if (value !== null && value !== "" && typeof (value) !== "undefined") { - if (typeof value === 'object') { - for (const key of Object.keys(value)) { - if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') { - let params = propName + '[' + key + ']'; - var subPart = encodeURIComponent(params) + "="; - result += subPart + encodeURIComponent(value[key]) + "&"; - } - } - } else { - result += part + encodeURIComponent(value) + "&"; - } - } - } - return result -} - -// 验证是否为blob格式 -export function blobValidate(data) { - return data.type !== 'application/json' -} diff --git a/mes-ui/src/utils/scroll-to.js b/mes-ui/src/utils/scroll-to.js deleted file mode 100644 index c5d8e04..0000000 --- a/mes-ui/src/utils/scroll-to.js +++ /dev/null @@ -1,58 +0,0 @@ -Math.easeInOutQuad = function(t, b, c, d) { - t /= d / 2 - if (t < 1) { - return c / 2 * t * t + b - } - t-- - return -c / 2 * (t * (t - 2) - 1) + b -} - -// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts -var requestAnimFrame = (function() { - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } -})() - -/** - * Because it's so fucking difficult to detect the scrolling element, just move them all - * @param {number} amount - */ -function move(amount) { - document.documentElement.scrollTop = amount - document.body.parentNode.scrollTop = amount - document.body.scrollTop = amount -} - -function position() { - return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop -} - -/** - * @param {number} to - * @param {number} duration - * @param {Function} callback - */ -export function scrollTo(to, duration, callback) { - const start = position() - const change = to - start - const increment = 20 - let currentTime = 0 - duration = (typeof (duration) === 'undefined') ? 500 : duration - var animateScroll = function() { - // increment the time - currentTime += increment - // find the value with the quadratic in-out easing function - var val = Math.easeInOutQuad(currentTime, start, change, duration) - // move the document.body - move(val) - // do the animation unless its over - if (currentTime < duration) { - requestAnimFrame(animateScroll) - } else { - if (callback && typeof (callback) === 'function') { - // the animation is done so lets callback - callback() - } - } - } - animateScroll() -} diff --git a/mes-ui/src/utils/validate.js b/mes-ui/src/utils/validate.js deleted file mode 100644 index adfa254..0000000 --- a/mes-ui/src/utils/validate.js +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @param {string} path - * @returns {Boolean} - */ -export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUsername(str) { - const valid_map = ['admin', 'editor'] - return valid_map.indexOf(str.trim()) >= 0 -} - -/** - * @param {string} url - * @returns {Boolean} - */ -export function validURL(url) { - const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ - return reg.test(url) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validLowerCase(str) { - const reg = /^[a-z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUpperCase(str) { - const reg = /^[A-Z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validAlphabets(str) { - const reg = /^[A-Za-z]+$/ - return reg.test(str) -} - -/** - * @param {string} email - * @returns {Boolean} - */ -export function validEmail(email) { - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - return reg.test(email) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function isString(str) { - if (typeof str === 'string' || str instanceof String) { - return true - } - return false -} - -/** - * @param {Array} arg - * @returns {Boolean} - */ -export function isArray(arg) { - if (typeof Array.isArray === 'undefined') { - return Object.prototype.toString.call(arg) === '[object Array]' - } - return Array.isArray(arg) -} diff --git a/mes-ui/src/views/components/icons/element-icons.js b/mes-ui/src/views/components/icons/element-icons.js deleted file mode 100644 index 9ea4d63..0000000 --- a/mes-ui/src/views/components/icons/element-icons.js +++ /dev/null @@ -1,3 +0,0 @@ -const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round'] - -export default elementIcons diff --git a/mes-ui/src/views/components/icons/index.vue b/mes-ui/src/views/components/icons/index.vue deleted file mode 100644 index d3c9a71..0000000 --- a/mes-ui/src/views/components/icons/index.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/components/icons/svg-icons.js b/mes-ui/src/views/components/icons/svg-icons.js deleted file mode 100644 index 724cd8e..0000000 --- a/mes-ui/src/views/components/icons/svg-icons.js +++ /dev/null @@ -1,10 +0,0 @@ -const req = require.context('../../../assets/icons/svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys() - -const re = /\.\/(.*)\.svg/ - -const svgIcons = requireAll(req).map(i => { - return i.match(re)[1] -}) - -export default svgIcons diff --git a/mes-ui/src/views/dashboard/BarChart.vue b/mes-ui/src/views/dashboard/BarChart.vue deleted file mode 100644 index cd33d2d..0000000 --- a/mes-ui/src/views/dashboard/BarChart.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/mes-ui/src/views/dashboard/LineChart.vue b/mes-ui/src/views/dashboard/LineChart.vue deleted file mode 100644 index ddd1063..0000000 --- a/mes-ui/src/views/dashboard/LineChart.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - diff --git a/mes-ui/src/views/dashboard/PanelGroup.vue b/mes-ui/src/views/dashboard/PanelGroup.vue deleted file mode 100644 index 1a1081f..0000000 --- a/mes-ui/src/views/dashboard/PanelGroup.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/dashboard/PieChart.vue b/mes-ui/src/views/dashboard/PieChart.vue deleted file mode 100644 index c360057..0000000 --- a/mes-ui/src/views/dashboard/PieChart.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/mes-ui/src/views/dashboard/RaddarChart.vue b/mes-ui/src/views/dashboard/RaddarChart.vue deleted file mode 100644 index b1790ca..0000000 --- a/mes-ui/src/views/dashboard/RaddarChart.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/mes-ui/src/views/dashboard/mixins/resize.js b/mes-ui/src/views/dashboard/mixins/resize.js deleted file mode 100644 index b1e76e9..0000000 --- a/mes-ui/src/views/dashboard/mixins/resize.js +++ /dev/null @@ -1,56 +0,0 @@ -import { debounce } from '@/utils' - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - } - }, - mounted() { - this.initListener() - }, - activated() { - if (!this.$_resizeHandler) { - // avoid duplication init - this.initListener() - } - - // when keep-alive chart activated, auto resize - this.resize() - }, - beforeDestroy() { - this.destroyListener() - }, - deactivated() { - this.destroyListener() - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_sidebarResizeHandler(e) { - if (e.propertyName === 'width') { - this.$_resizeHandler() - } - }, - initListener() { - this.$_resizeHandler = debounce(() => { - this.resize() - }, 100) - window.addEventListener('resize', this.$_resizeHandler) - - this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] - this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) - }, - destroyListener() { - window.removeEventListener('resize', this.$_resizeHandler) - this.$_resizeHandler = null - - this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) - }, - resize() { - const { chart } = this - chart && chart.resize() - } - } -} diff --git a/mes-ui/src/views/error/401.vue b/mes-ui/src/views/error/401.vue deleted file mode 100644 index 448b6ec..0000000 --- a/mes-ui/src/views/error/401.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/error/404.vue b/mes-ui/src/views/error/404.vue deleted file mode 100644 index 96f075c..0000000 --- a/mes-ui/src/views/error/404.vue +++ /dev/null @@ -1,233 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/index.vue b/mes-ui/src/views/index.vue deleted file mode 100644 index d38d1d1..0000000 --- a/mes-ui/src/views/index.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/index_v1.vue b/mes-ui/src/views/index_v1.vue deleted file mode 100644 index d2d2ec6..0000000 --- a/mes-ui/src/views/index_v1.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/login.vue b/mes-ui/src/views/login.vue deleted file mode 100644 index c291d27..0000000 --- a/mes-ui/src/views/login.vue +++ /dev/null @@ -1,221 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/barcode/barcodeRecord/index.vue b/mes-ui/src/views/mes/barcode/barcodeRecord/index.vue deleted file mode 100644 index 2527851..0000000 --- a/mes-ui/src/views/mes/barcode/barcodeRecord/index.vue +++ /dev/null @@ -1,326 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/barcode/materialSn/index.vue b/mes-ui/src/views/mes/barcode/materialSn/index.vue deleted file mode 100644 index 14fcc87..0000000 --- a/mes-ui/src/views/mes/barcode/materialSn/index.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/common/sysCodeRule/index.vue b/mes-ui/src/views/mes/common/sysCodeRule/index.vue deleted file mode 100644 index d6c513d..0000000 --- a/mes-ui/src/views/mes/common/sysCodeRule/index.vue +++ /dev/null @@ -1,498 +0,0 @@ - - diff --git a/mes-ui/src/views/mes/common/sysUserStation/index.vue b/mes-ui/src/views/mes/common/sysUserStation/index.vue deleted file mode 100644 index d96289a..0000000 --- a/mes-ui/src/views/mes/common/sysUserStation/index.vue +++ /dev/null @@ -1,339 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/equipment/equipment/index.vue b/mes-ui/src/views/mes/equipment/equipment/index.vue deleted file mode 100644 index 68f8902..0000000 --- a/mes-ui/src/views/mes/equipment/equipment/index.vue +++ /dev/null @@ -1,444 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/equipment/inspectionItem/index.vue b/mes-ui/src/views/mes/equipment/inspectionItem/index.vue deleted file mode 100644 index 40fe6d2..0000000 --- a/mes-ui/src/views/mes/equipment/inspectionItem/index.vue +++ /dev/null @@ -1,352 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/equipment/oeeGantt/ganttx.vue b/mes-ui/src/views/mes/equipment/oeeGantt/ganttx.vue deleted file mode 100644 index 405f5f5..0000000 --- a/mes-ui/src/views/mes/equipment/oeeGantt/ganttx.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/equipment/oeeGantt/index.vue b/mes-ui/src/views/mes/equipment/oeeGantt/index.vue deleted file mode 100644 index 78fdc5c..0000000 --- a/mes-ui/src/views/mes/equipment/oeeGantt/index.vue +++ /dev/null @@ -1,329 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/equipment/repairOrder/index.vue b/mes-ui/src/views/mes/equipment/repairOrder/index.vue deleted file mode 100644 index c09905e..0000000 --- a/mes-ui/src/views/mes/equipment/repairOrder/index.vue +++ /dev/null @@ -1,664 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/finance/payroll/form.vue b/mes-ui/src/views/mes/finance/payroll/form.vue deleted file mode 100644 index c3bd137..0000000 --- a/mes-ui/src/views/mes/finance/payroll/form.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/finance/payroll/index.vue b/mes-ui/src/views/mes/finance/payroll/index.vue deleted file mode 100644 index ae38600..0000000 --- a/mes-ui/src/views/mes/finance/payroll/index.vue +++ /dev/null @@ -1,431 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/finance/pieceWagePlan/index.vue b/mes-ui/src/views/mes/finance/pieceWagePlan/index.vue deleted file mode 100644 index c18d4cf..0000000 --- a/mes-ui/src/views/mes/finance/pieceWagePlan/index.vue +++ /dev/null @@ -1,443 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/integration/integrateDataSource/index.vue b/mes-ui/src/views/mes/integration/integrateDataSource/index.vue deleted file mode 100644 index efe4460..0000000 --- a/mes-ui/src/views/mes/integration/integrateDataSource/index.vue +++ /dev/null @@ -1,558 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/integration/integratePlan/index.vue b/mes-ui/src/views/mes/integration/integratePlan/index.vue deleted file mode 100644 index 71c56de..0000000 --- a/mes-ui/src/views/mes/integration/integratePlan/index.vue +++ /dev/null @@ -1,438 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/bom/index.vue b/mes-ui/src/views/mes/masterdata/bom/index.vue deleted file mode 100644 index ec9ebfd..0000000 --- a/mes-ui/src/views/mes/masterdata/bom/index.vue +++ /dev/null @@ -1,346 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/customer/index.vue b/mes-ui/src/views/mes/masterdata/customer/index.vue deleted file mode 100644 index 9169a4b..0000000 --- a/mes-ui/src/views/mes/masterdata/customer/index.vue +++ /dev/null @@ -1,534 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/material/index.vue b/mes-ui/src/views/mes/masterdata/material/index.vue deleted file mode 100644 index b98ffe0..0000000 --- a/mes-ui/src/views/mes/masterdata/material/index.vue +++ /dev/null @@ -1,525 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/materialClass/index.vue b/mes-ui/src/views/mes/masterdata/materialClass/index.vue deleted file mode 100644 index cefc954..0000000 --- a/mes-ui/src/views/mes/masterdata/materialClass/index.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/station/index.vue b/mes-ui/src/views/mes/masterdata/station/index.vue deleted file mode 100644 index 69b1298..0000000 --- a/mes-ui/src/views/mes/masterdata/station/index.vue +++ /dev/null @@ -1,477 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/unit/index.vue b/mes-ui/src/views/mes/masterdata/unit/index.vue deleted file mode 100644 index bca9024..0000000 --- a/mes-ui/src/views/mes/masterdata/unit/index.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/unitChange/index.vue b/mes-ui/src/views/mes/masterdata/unitChange/index.vue deleted file mode 100644 index f2b2b77..0000000 --- a/mes-ui/src/views/mes/masterdata/unitChange/index.vue +++ /dev/null @@ -1,378 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/masterdata/workshop/index.vue b/mes-ui/src/views/mes/masterdata/workshop/index.vue deleted file mode 100644 index 0197122..0000000 --- a/mes-ui/src/views/mes/masterdata/workshop/index.vue +++ /dev/null @@ -1,307 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/production/process/index.vue b/mes-ui/src/views/mes/production/process/index.vue deleted file mode 100644 index 77b7d7c..0000000 --- a/mes-ui/src/views/mes/production/process/index.vue +++ /dev/null @@ -1,381 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/production/report/form.vue b/mes-ui/src/views/mes/production/report/form.vue deleted file mode 100644 index 1827e2c..0000000 --- a/mes-ui/src/views/mes/production/report/form.vue +++ /dev/null @@ -1,463 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/production/report/index.vue b/mes-ui/src/views/mes/production/report/index.vue deleted file mode 100644 index 3f1b408..0000000 --- a/mes-ui/src/views/mes/production/report/index.vue +++ /dev/null @@ -1,403 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/production/route/index.vue b/mes-ui/src/views/mes/production/route/index.vue deleted file mode 100644 index 923ad43..0000000 --- a/mes-ui/src/views/mes/production/route/index.vue +++ /dev/null @@ -1,561 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/production/workOrder/form.vue b/mes-ui/src/views/mes/production/workOrder/form.vue deleted file mode 100644 index f68b539..0000000 --- a/mes-ui/src/views/mes/production/workOrder/form.vue +++ /dev/null @@ -1,449 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/production/workOrder/index.vue b/mes-ui/src/views/mes/production/workOrder/index.vue deleted file mode 100644 index 8c3e341..0000000 --- a/mes-ui/src/views/mes/production/workOrder/index.vue +++ /dev/null @@ -1,503 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/quality/qualityLevel/index.vue b/mes-ui/src/views/mes/quality/qualityLevel/index.vue deleted file mode 100644 index 82efd67..0000000 --- a/mes-ui/src/views/mes/quality/qualityLevel/index.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/quality/reason/index.vue b/mes-ui/src/views/mes/quality/reason/index.vue deleted file mode 100644 index f918876..0000000 --- a/mes-ui/src/views/mes/quality/reason/index.vue +++ /dev/null @@ -1,347 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/quality/reportQuality/form.vue b/mes-ui/src/views/mes/quality/reportQuality/form.vue deleted file mode 100644 index 39dbb2a..0000000 --- a/mes-ui/src/views/mes/quality/reportQuality/form.vue +++ /dev/null @@ -1,655 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/mes/quality/reportQuality/index.vue b/mes-ui/src/views/mes/quality/reportQuality/index.vue deleted file mode 100644 index 83b849a..0000000 --- a/mes-ui/src/views/mes/quality/reportQuality/index.vue +++ /dev/null @@ -1,443 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/sale/saleOrder/form.vue b/mes-ui/src/views/mes/sale/saleOrder/form.vue deleted file mode 100644 index 4c584e4..0000000 --- a/mes-ui/src/views/mes/sale/saleOrder/form.vue +++ /dev/null @@ -1,558 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/sale/saleOrder/index.vue b/mes-ui/src/views/mes/sale/saleOrder/index.vue deleted file mode 100644 index bbcb484..0000000 --- a/mes-ui/src/views/mes/sale/saleOrder/index.vue +++ /dev/null @@ -1,351 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/warehouse/inventory/index.vue b/mes-ui/src/views/mes/warehouse/inventory/index.vue deleted file mode 100644 index 83b01ed..0000000 --- a/mes-ui/src/views/mes/warehouse/inventory/index.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/warehouse/manufactureInto/form.vue b/mes-ui/src/views/mes/warehouse/manufactureInto/form.vue deleted file mode 100644 index 6752606..0000000 --- a/mes-ui/src/views/mes/warehouse/manufactureInto/form.vue +++ /dev/null @@ -1,468 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/warehouse/manufactureInto/index.vue b/mes-ui/src/views/mes/warehouse/manufactureInto/index.vue deleted file mode 100644 index f009b2f..0000000 --- a/mes-ui/src/views/mes/warehouse/manufactureInto/index.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/warehouse/proPick/form.vue b/mes-ui/src/views/mes/warehouse/proPick/form.vue deleted file mode 100644 index abdcf44..0000000 --- a/mes-ui/src/views/mes/warehouse/proPick/form.vue +++ /dev/null @@ -1,494 +0,0 @@ - - - - diff --git a/mes-ui/src/views/mes/warehouse/proPick/index.vue b/mes-ui/src/views/mes/warehouse/proPick/index.vue deleted file mode 100644 index ecbb3cd..0000000 --- a/mes-ui/src/views/mes/warehouse/proPick/index.vue +++ /dev/null @@ -1,319 +0,0 @@ - - - diff --git a/mes-ui/src/views/mes/warehouse/warehouse/index.vue b/mes-ui/src/views/mes/warehouse/warehouse/index.vue deleted file mode 100644 index 6e752c9..0000000 --- a/mes-ui/src/views/mes/warehouse/warehouse/index.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - diff --git a/mes-ui/src/views/monitor/cache/index.vue b/mes-ui/src/views/monitor/cache/index.vue deleted file mode 100644 index e81da2e..0000000 --- a/mes-ui/src/views/monitor/cache/index.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - diff --git a/mes-ui/src/views/monitor/cache/list.vue b/mes-ui/src/views/monitor/cache/list.vue deleted file mode 100644 index 29a7c74..0000000 --- a/mes-ui/src/views/monitor/cache/list.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - diff --git a/mes-ui/src/views/monitor/druid/index.vue b/mes-ui/src/views/monitor/druid/index.vue deleted file mode 100644 index c6ad585..0000000 --- a/mes-ui/src/views/monitor/druid/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/mes-ui/src/views/monitor/job/index.vue b/mes-ui/src/views/monitor/job/index.vue deleted file mode 100644 index 37c8fc1..0000000 --- a/mes-ui/src/views/monitor/job/index.vue +++ /dev/null @@ -1,513 +0,0 @@ - - - diff --git a/mes-ui/src/views/monitor/job/log.vue b/mes-ui/src/views/monitor/job/log.vue deleted file mode 100644 index 60bee1d..0000000 --- a/mes-ui/src/views/monitor/job/log.vue +++ /dev/null @@ -1,295 +0,0 @@ - - - diff --git a/mes-ui/src/views/monitor/logininfor/index.vue b/mes-ui/src/views/monitor/logininfor/index.vue deleted file mode 100644 index d6af834..0000000 --- a/mes-ui/src/views/monitor/logininfor/index.vue +++ /dev/null @@ -1,246 +0,0 @@ - - - - diff --git a/mes-ui/src/views/monitor/online/index.vue b/mes-ui/src/views/monitor/online/index.vue deleted file mode 100644 index ad613c9..0000000 --- a/mes-ui/src/views/monitor/online/index.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - - diff --git a/mes-ui/src/views/monitor/operlog/index.vue b/mes-ui/src/views/monitor/operlog/index.vue deleted file mode 100644 index 34a3ce3..0000000 --- a/mes-ui/src/views/monitor/operlog/index.vue +++ /dev/null @@ -1,313 +0,0 @@ - - - - diff --git a/mes-ui/src/views/monitor/server/index.vue b/mes-ui/src/views/monitor/server/index.vue deleted file mode 100644 index 15ffc9a..0000000 --- a/mes-ui/src/views/monitor/server/index.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - diff --git a/mes-ui/src/views/redirect.vue b/mes-ui/src/views/redirect.vue deleted file mode 100644 index db4c1d6..0000000 --- a/mes-ui/src/views/redirect.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/mes-ui/src/views/register.vue b/mes-ui/src/views/register.vue deleted file mode 100644 index c3e03ee..0000000 --- a/mes-ui/src/views/register.vue +++ /dev/null @@ -1,209 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/system/carousel/index.vue b/mes-ui/src/views/system/carousel/index.vue deleted file mode 100644 index 093d348..0000000 --- a/mes-ui/src/views/system/carousel/index.vue +++ /dev/null @@ -1,301 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/config/index.vue b/mes-ui/src/views/system/config/index.vue deleted file mode 100644 index 3ab81fc..0000000 --- a/mes-ui/src/views/system/config/index.vue +++ /dev/null @@ -1,343 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/dept/index.vue b/mes-ui/src/views/system/dept/index.vue deleted file mode 100644 index e502b4e..0000000 --- a/mes-ui/src/views/system/dept/index.vue +++ /dev/null @@ -1,340 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/dict/data.vue b/mes-ui/src/views/system/dict/data.vue deleted file mode 100644 index 324bb64..0000000 --- a/mes-ui/src/views/system/dict/data.vue +++ /dev/null @@ -1,402 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/dict/index.vue b/mes-ui/src/views/system/dict/index.vue deleted file mode 100644 index 6ca5457..0000000 --- a/mes-ui/src/views/system/dict/index.vue +++ /dev/null @@ -1,347 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/menu/index.vue b/mes-ui/src/views/system/menu/index.vue deleted file mode 100644 index 2a83f9e..0000000 --- a/mes-ui/src/views/system/menu/index.vue +++ /dev/null @@ -1,452 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/notice/index.vue b/mes-ui/src/views/system/notice/index.vue deleted file mode 100644 index 7982b54..0000000 --- a/mes-ui/src/views/system/notice/index.vue +++ /dev/null @@ -1,312 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/post/index.vue b/mes-ui/src/views/system/post/index.vue deleted file mode 100644 index 444bf63..0000000 --- a/mes-ui/src/views/system/post/index.vue +++ /dev/null @@ -1,309 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/role/authUser.vue b/mes-ui/src/views/system/role/authUser.vue deleted file mode 100644 index 147aa33..0000000 --- a/mes-ui/src/views/system/role/authUser.vue +++ /dev/null @@ -1,199 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/role/index.vue b/mes-ui/src/views/system/role/index.vue deleted file mode 100644 index fb3b5ef..0000000 --- a/mes-ui/src/views/system/role/index.vue +++ /dev/null @@ -1,605 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/role/selectUser.vue b/mes-ui/src/views/system/role/selectUser.vue deleted file mode 100644 index b2b072f..0000000 --- a/mes-ui/src/views/system/role/selectUser.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/user/authRole.vue b/mes-ui/src/views/system/user/authRole.vue deleted file mode 100644 index ab5e72f..0000000 --- a/mes-ui/src/views/system/user/authRole.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/user/index.vue b/mes-ui/src/views/system/user/index.vue deleted file mode 100644 index ae87fe4..0000000 --- a/mes-ui/src/views/system/user/index.vue +++ /dev/null @@ -1,670 +0,0 @@ - - - \ No newline at end of file diff --git a/mes-ui/src/views/system/user/profile/index.vue b/mes-ui/src/views/system/user/profile/index.vue deleted file mode 100644 index ad530f9..0000000 --- a/mes-ui/src/views/system/user/profile/index.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/user/profile/resetPwd.vue b/mes-ui/src/views/system/user/profile/resetPwd.vue deleted file mode 100644 index 64e8f8c..0000000 --- a/mes-ui/src/views/system/user/profile/resetPwd.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/mes-ui/src/views/system/user/profile/userAvatar.vue b/mes-ui/src/views/system/user/profile/userAvatar.vue deleted file mode 100644 index 70d8487..0000000 --- a/mes-ui/src/views/system/user/profile/userAvatar.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - - diff --git a/mes-ui/src/views/system/user/profile/userInfo.vue b/mes-ui/src/views/system/user/profile/userInfo.vue deleted file mode 100644 index c09a20b..0000000 --- a/mes-ui/src/views/system/user/profile/userInfo.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/build/CodeTypeDialog.vue b/mes-ui/src/views/tool/build/CodeTypeDialog.vue deleted file mode 100644 index b5c2e2e..0000000 --- a/mes-ui/src/views/tool/build/CodeTypeDialog.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/mes-ui/src/views/tool/build/DraggableItem.vue b/mes-ui/src/views/tool/build/DraggableItem.vue deleted file mode 100644 index e881778..0000000 --- a/mes-ui/src/views/tool/build/DraggableItem.vue +++ /dev/null @@ -1,100 +0,0 @@ - diff --git a/mes-ui/src/views/tool/build/IconsDialog.vue b/mes-ui/src/views/tool/build/IconsDialog.vue deleted file mode 100644 index 958be50..0000000 --- a/mes-ui/src/views/tool/build/IconsDialog.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/build/RightPanel.vue b/mes-ui/src/views/tool/build/RightPanel.vue deleted file mode 100644 index c2760eb..0000000 --- a/mes-ui/src/views/tool/build/RightPanel.vue +++ /dev/null @@ -1,946 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/tool/build/TreeNodeDialog.vue b/mes-ui/src/views/tool/build/TreeNodeDialog.vue deleted file mode 100644 index fa7f0b2..0000000 --- a/mes-ui/src/views/tool/build/TreeNodeDialog.vue +++ /dev/null @@ -1,149 +0,0 @@ - - diff --git a/mes-ui/src/views/tool/build/index.vue b/mes-ui/src/views/tool/build/index.vue deleted file mode 100644 index 2bd298b..0000000 --- a/mes-ui/src/views/tool/build/index.vue +++ /dev/null @@ -1,768 +0,0 @@ - - - - - diff --git a/mes-ui/src/views/tool/gen/basicInfoForm.vue b/mes-ui/src/views/tool/gen/basicInfoForm.vue deleted file mode 100644 index 7029529..0000000 --- a/mes-ui/src/views/tool/gen/basicInfoForm.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/gen/editTable.vue b/mes-ui/src/views/tool/gen/editTable.vue deleted file mode 100644 index e756892..0000000 --- a/mes-ui/src/views/tool/gen/editTable.vue +++ /dev/null @@ -1,234 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/gen/genInfoForm.vue b/mes-ui/src/views/tool/gen/genInfoForm.vue deleted file mode 100644 index 3f8d67f..0000000 --- a/mes-ui/src/views/tool/gen/genInfoForm.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/gen/importTable.vue b/mes-ui/src/views/tool/gen/importTable.vue deleted file mode 100644 index 3ea9532..0000000 --- a/mes-ui/src/views/tool/gen/importTable.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/gen/index.vue b/mes-ui/src/views/tool/gen/index.vue deleted file mode 100644 index 3f1f930..0000000 --- a/mes-ui/src/views/tool/gen/index.vue +++ /dev/null @@ -1,337 +0,0 @@ - - - diff --git a/mes-ui/src/views/tool/swagger/index.vue b/mes-ui/src/views/tool/swagger/index.vue deleted file mode 100644 index b8becc6..0000000 --- a/mes-ui/src/views/tool/swagger/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/mes-ui/vue.config.js b/mes-ui/vue.config.js deleted file mode 100644 index 1a158ed..0000000 --- a/mes-ui/vue.config.js +++ /dev/null @@ -1,136 +0,0 @@ -'use strict' -const path = require('path') - -function resolve(dir) { - return path.join(__dirname, dir) -} - -const CompressionPlugin = require('compression-webpack-plugin') - -const name = process.env.VUE_APP_TITLE || '智能工厂管理平台' // 网页标题 - -const port = process.env.port || process.env.npm_config_port || 80 // 端口 - -// vue.config.js 配置说明 -//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions -// 这里只列一部分,具体配置参考文档 -module.exports = { - // 部署生产环境和开发环境下的URL。 - // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 - // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 - publicPath: process.env.NODE_ENV === "production" ? "/" : "/", - // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) - outputDir: 'dist', - // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) - assetsDir: 'static', - // 是否开启eslint保存检测,有效值:ture | false | 'error' - lintOnSave: process.env.NODE_ENV === 'development', - // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 - productionSourceMap: false, - // webpack-dev-server 相关配置 - devServer: { - host: '0.0.0.0', - port: port, - open: true, - proxy: { - // detail: https://cli.vuejs.org/config/#devserver-proxy - [process.env.VUE_APP_BASE_API]: { - target: `http://127.0.0.1:8080`, - changeOrigin: true, - pathRewrite: { - ['^' + process.env.VUE_APP_BASE_API]: '' - } - } - }, - disableHostCheck: true - }, - css: { - loaderOptions: { - sass: { - sassOptions: { outputStyle: "expanded" } - } - } - }, - configureWebpack: { - name: name, - resolve: { - alias: { - '@': resolve('src') - } - }, - plugins: [ - // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 - new CompressionPlugin({ - cache: false, // 不启用文件缓存 - test: /\.(js|css|html)?$/i, // 压缩文件格式 - filename: '[path].gz[query]', // 压缩后的文件名 - algorithm: 'gzip', // 使用gzip压缩 - minRatio: 0.8 // 压缩率小于1才会压缩 - }) - ], - }, - chainWebpack(config) { - config.plugins.delete('preload') // TODO: need test - config.plugins.delete('prefetch') // TODO: need test - - // set svg-sprite-loader - config.module - .rule('svg') - .exclude.add(resolve('src/assets/icons')) - .end() - config.module - .rule('icons') - .test(/\.svg$/) - .include.add(resolve('src/assets/icons')) - .end() - .use('svg-sprite-loader') - .loader('svg-sprite-loader') - .options({ - symbolId: 'icon-[name]' - }) - .end() - - config - .when(process.env.NODE_ENV !== 'development', - config => { - config - .plugin('ScriptExtHtmlWebpackPlugin') - .after('html') - .use('script-ext-html-webpack-plugin', [{ - // `runtime` must same as runtimeChunk name. default is `runtime` - inline: /runtime\..*\.js$/ - }]) - .end() - config - .optimization.splitChunks({ - chunks: 'all', - cacheGroups: { - libs: { - name: 'chunk-libs', - test: /[\\/]node_modules[\\/]/, - priority: 10, - chunks: 'initial' // only package third parties that are initially dependent - }, - elementUI: { - name: 'chunk-elementUI', // split elementUI into a single package - priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app - test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm - }, - commons: { - name: 'chunk-commons', - test: resolve('src/components'), // can customize your rules - minChunks: 3, // minimum common number - priority: 5, - reuseExistingChunk: true - } - } - }) - config.optimization.runtimeChunk('single'), - { - from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件 - to: './' //到根目录下 - } - } - ) - } -} diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/controller/BarcodeRecordController.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/controller/BarcodeRecordController.java similarity index 88% rename from yjh-mes/src/main/java/com/ruoyi/barcode/controller/BarcodeRecordController.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/controller/BarcodeRecordController.java index 10d2733..c52884c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/controller/BarcodeRecordController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/controller/BarcodeRecordController.java @@ -1,27 +1,20 @@ package cn.sourceplan.barcode.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import com.alibaba.fastjson2.JSONObject; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.sourceplan.barcode.domain.BarcodeRecord; +import cn.sourceplan.barcode.service.IBarcodeRecordService; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.enums.BusinessType; -import cn.sourceplan.barcode.domain.BarcodeRecord; -import cn.sourceplan.barcode.service.IBarcodeRecordService; -import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.common.core.page.TableDataInfo; +import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; +import com.alibaba.fastjson2.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 条码生成记录Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/controller/MaterialSnController.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/controller/MaterialSnController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/barcode/controller/MaterialSnController.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/controller/MaterialSnController.java index 16dd312..1aaa0ed 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/controller/MaterialSnController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/controller/MaterialSnController.java @@ -1,25 +1,19 @@ package cn.sourceplan.barcode.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.sourceplan.barcode.domain.MaterialSn; +import cn.sourceplan.barcode.service.IMaterialSnService; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.enums.BusinessType; -import cn.sourceplan.barcode.domain.MaterialSn; -import cn.sourceplan.barcode.service.IMaterialSnService; -import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.common.core.page.TableDataInfo; +import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 物料SN码Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/domain/BarcodeRecord.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/domain/BarcodeRecord.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/barcode/domain/BarcodeRecord.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/domain/BarcodeRecord.java index 274767e..f3a8124 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/domain/BarcodeRecord.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/domain/BarcodeRecord.java @@ -1,14 +1,12 @@ package cn.sourceplan.barcode.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 条码生成记录对象 wm_barcode_record diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/domain/MaterialSn.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/domain/MaterialSn.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/barcode/domain/MaterialSn.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/domain/MaterialSn.java index a6c1912..e8ae84f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/domain/MaterialSn.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/domain/MaterialSn.java @@ -1,13 +1,11 @@ package cn.sourceplan.barcode.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 物料SN码对象 wm_material_sn diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/mapper/BarcodeRecordMapper.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/BarcodeRecordMapper.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/barcode/mapper/BarcodeRecordMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/BarcodeRecordMapper.java index 7871f61..3e4488b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/mapper/BarcodeRecordMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/BarcodeRecordMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.barcode.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.barcode.domain.BarcodeRecord; -import cn.sourceplan.equipment.domain.Equipment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/mapper/MaterialSnMapper.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/MaterialSnMapper.java similarity index 82% rename from yjh-mes/src/main/java/com/ruoyi/barcode/mapper/MaterialSnMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/MaterialSnMapper.java index 4b908cb..1ad54c5 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/mapper/MaterialSnMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/mapper/MaterialSnMapper.java @@ -1,17 +1,13 @@ package cn.sourceplan.barcode.mapper; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.barcode.domain.MaterialSn; -import cn.sourceplan.equipment.domain.Equipment; -import cn.sourceplan.sale.domain.SalOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; -import org.springframework.security.access.method.P; import org.springframework.stereotype.Repository; +import java.util.Collection; +import java.util.Map; + /** * 物料SN码Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/service/IBarcodeRecordService.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/IBarcodeRecordService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/barcode/service/IBarcodeRecordService.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/service/IBarcodeRecordService.java index ffb6f1e..d394e8c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/service/IBarcodeRecordService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/IBarcodeRecordService.java @@ -1,8 +1,9 @@ package cn.sourceplan.barcode.service; -import java.util.List; import cn.sourceplan.barcode.domain.BarcodeRecord; +import java.util.List; + /** * 条码生成记录Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/service/IMaterialSnService.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/IMaterialSnService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/barcode/service/IMaterialSnService.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/service/IMaterialSnService.java index b557caf..1430d9a 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/service/IMaterialSnService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/IMaterialSnService.java @@ -1,8 +1,9 @@ package cn.sourceplan.barcode.service; -import java.util.List; import cn.sourceplan.barcode.domain.MaterialSn; +import java.util.List; + /** * 物料SN码Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/BarcodeRecordServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/BarcodeRecordServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/BarcodeRecordServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/BarcodeRecordServiceImpl.java index e3039bf..7ddd8b4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/BarcodeRecordServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/BarcodeRecordServiceImpl.java @@ -1,28 +1,27 @@ package cn.sourceplan.barcode.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.sourceplan.barcode.domain.BarcodeRecord; import cn.sourceplan.barcode.domain.MaterialSn; +import cn.sourceplan.barcode.mapper.BarcodeRecordMapper; import cn.sourceplan.barcode.mapper.MaterialSnMapper; +import cn.sourceplan.barcode.service.IBarcodeRecordService; import cn.sourceplan.common.domain.SysCodeRule; import cn.sourceplan.common.service.ISysCodeRuleService; -import cn.sourceplan.common.utils.DateUtils; import cn.sourceplan.masterdata.domain.Material; import cn.sourceplan.masterdata.domain.Unit; import cn.sourceplan.masterdata.mapper.MaterialMapper; import cn.sourceplan.masterdata.mapper.UnitMapper; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.barcode.mapper.BarcodeRecordMapper; -import cn.sourceplan.barcode.domain.BarcodeRecord; -import cn.sourceplan.barcode.service.IBarcodeRecordService; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * 条码生成记录Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/MaterialSnServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/MaterialSnServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/MaterialSnServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/MaterialSnServiceImpl.java index d2cf499..55a647a 100644 --- a/yjh-mes/src/main/java/com/ruoyi/barcode/service/impl/MaterialSnServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/barcode/service/impl/MaterialSnServiceImpl.java @@ -1,16 +1,15 @@ package cn.sourceplan.barcode.service.impl; +import cn.sourceplan.barcode.domain.MaterialSn; +import cn.sourceplan.barcode.mapper.MaterialSnMapper; +import cn.sourceplan.barcode.service.IMaterialSnService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Arrays; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import cn.sourceplan.barcode.mapper.MaterialSnMapper; -import cn.sourceplan.barcode.domain.MaterialSn; -import cn.sourceplan.barcode.service.IMaterialSnService; - /** * 物料SN码Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/common/controller/SysCodeRuleController.java b/yjh-mes/src/main/java/cn/sourceplan/common/controller/SysCodeRuleController.java similarity index 87% rename from yjh-mes/src/main/java/com/ruoyi/common/controller/SysCodeRuleController.java rename to yjh-mes/src/main/java/cn/sourceplan/common/controller/SysCodeRuleController.java index 57b89a1..e8a5d3f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/controller/SysCodeRuleController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/controller/SysCodeRuleController.java @@ -1,25 +1,19 @@ package cn.sourceplan.common.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.domain.SysCodeRule; +import cn.sourceplan.common.enums.BusinessType; import cn.sourceplan.common.service.ISysCodeRuleService; import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 编码规则Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/common/controller/SysUserStationController.java b/yjh-mes/src/main/java/cn/sourceplan/common/controller/SysUserStationController.java similarity index 89% rename from yjh-mes/src/main/java/com/ruoyi/common/controller/SysUserStationController.java rename to yjh-mes/src/main/java/cn/sourceplan/common/controller/SysUserStationController.java index 46abdad..f0b5774 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/controller/SysUserStationController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/controller/SysUserStationController.java @@ -1,27 +1,20 @@ package cn.sourceplan.common.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import cn.sourceplan.common.utils.SecurityUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.enums.BusinessType; -import cn.sourceplan.common.domain.SysUserStation; -import cn.sourceplan.common.service.ISysUserStationService; -import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.common.core.page.TableDataInfo; +import cn.sourceplan.common.domain.SysUserStation; +import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.service.ISysUserStationService; +import cn.sourceplan.common.utils.SecurityUtils; +import cn.sourceplan.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 用户工位绑定Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRule.java b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRule.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRule.java rename to yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRule.java index 6120988..3859f58 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRule.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRule.java @@ -1,16 +1,14 @@ package cn.sourceplan.common.domain; -import java.util.List; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.util.List; /** * 编码规则对象 sys_code_rule diff --git a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRuleEntry.java b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRuleEntry.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRuleEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRuleEntry.java index 6ccc38f..03e3710 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysCodeRuleEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysCodeRuleEntry.java @@ -1,13 +1,10 @@ package cn.sourceplan.common.domain; +import cn.sourceplan.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 编码规则子对象 sys_code_rule_entry diff --git a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysFileInfo.java b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysFileInfo.java similarity index 79% rename from yjh-mes/src/main/java/com/ruoyi/common/domain/SysFileInfo.java rename to yjh-mes/src/main/java/cn/sourceplan/common/domain/SysFileInfo.java index 1778762..bacaefb 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysFileInfo.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysFileInfo.java @@ -1,10 +1,8 @@ package cn.sourceplan.common.domain; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import cn.sourceplan.common.core.domain.BaseEntity; import lombok.Data; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysUserStation.java b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysUserStation.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/common/domain/SysUserStation.java rename to yjh-mes/src/main/java/cn/sourceplan/common/domain/SysUserStation.java index e31213c..2247592 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/domain/SysUserStation.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/domain/SysUserStation.java @@ -1,12 +1,9 @@ package cn.sourceplan.common.domain; +import cn.sourceplan.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; import java.util.Date; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SqlCheckMapper.java b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SqlCheckMapper.java similarity index 93% rename from yjh-mes/src/main/java/com/ruoyi/common/mapper/SqlCheckMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mapper/SqlCheckMapper.java index f6d31e1..23c37f5 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SqlCheckMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SqlCheckMapper.java @@ -1,7 +1,5 @@ package cn.sourceplan.common.mapper; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleEntryMapper.java similarity index 79% rename from yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleEntryMapper.java index 184d3d8..db31be7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleEntryMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.common.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.common.domain.SysCodeRule; import cn.sourceplan.common.domain.SysCodeRuleEntry; -import cn.sourceplan.sale.domain.SalOrderEntry; -import org.apache.ibatis.annotations.Options; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleMapper.java b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleMapper.java similarity index 87% rename from yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleMapper.java index 2401c09..c51e519 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysCodeRuleMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysCodeRuleMapper.java @@ -1,11 +1,7 @@ package cn.sourceplan.common.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.common.domain.SysCodeRule; -import cn.sourceplan.common.domain.SysCodeRuleEntry; -import cn.sourceplan.common.domain.SysFileInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysFileInfoMapper.java b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysFileInfoMapper.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/common/mapper/SysFileInfoMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysFileInfoMapper.java index c91161b..46a564b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysFileInfoMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysFileInfoMapper.java @@ -1,7 +1,7 @@ package cn.sourceplan.common.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.common.domain.SysFileInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysUserStationMapper.java b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysUserStationMapper.java similarity index 91% rename from yjh-mes/src/main/java/com/ruoyi/common/mapper/SysUserStationMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysUserStationMapper.java index f4dea7e..9528449 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mapper/SysUserStationMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mapper/SysUserStationMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.common.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.common.domain.SysFileInfo; import cn.sourceplan.common.domain.SysUserStation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerCallBack.java b/yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerCallBack.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerCallBack.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerCallBack.java index e42d840..7929fb2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerCallBack.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerCallBack.java @@ -1,12 +1,10 @@ package cn.sourceplan.common.mqtt; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.utils.StringUtils; import cn.sourceplan.equipment.domain.Equipment; import cn.sourceplan.equipment.mapper.EquipmentMapper; -import cn.sourceplan.equipment.service.IEquipmentService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerConfig.java b/yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerConfig.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerConfig.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerConfig.java index c5d3b40..dd7a6ee 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mqtt/MqttConsumerConfig.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mqtt/MqttConsumerConfig.java @@ -1,17 +1,17 @@ package cn.sourceplan.common.mqtt; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.equipment.domain.Equipment; import cn.sourceplan.equipment.mapper.EquipmentMapper; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.paho.client.mqttv3.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttConnectOptions; +import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; -import java.util.ArrayList; import java.util.List; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/EasySqlInjector.java b/yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/EasySqlInjector.java similarity index 91% rename from yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/EasySqlInjector.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/EasySqlInjector.java index 1f6232e..a97d9c9 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/EasySqlInjector.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/EasySqlInjector.java @@ -2,7 +2,6 @@ package cn.sourceplan.common.mybatisplus; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; -import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn; import java.util.List; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/MyMetaObjectHandler.java b/yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/MyMetaObjectHandler.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/MyMetaObjectHandler.java rename to yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/MyMetaObjectHandler.java index d47bfec..8cbd4dd 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/mybatisplus/MyMetaObjectHandler.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/mybatisplus/MyMetaObjectHandler.java @@ -1,8 +1,8 @@ package cn.sourceplan.common.mybatisplus; import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import cn.sourceplan.common.utils.SecurityUtils; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; diff --git a/yjh-mes/src/main/java/com/ruoyi/common/service/ISysCodeRuleService.java b/yjh-mes/src/main/java/cn/sourceplan/common/service/ISysCodeRuleService.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/common/service/ISysCodeRuleService.java rename to yjh-mes/src/main/java/cn/sourceplan/common/service/ISysCodeRuleService.java index b8ea831..79c2420 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/service/ISysCodeRuleService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/service/ISysCodeRuleService.java @@ -1,8 +1,8 @@ package cn.sourceplan.common.service; -import java.util.List; import cn.sourceplan.common.domain.SysCodeRule; -import com.sun.org.apache.xpath.internal.operations.Bool; + +import java.util.List; /** * 编码规则Service接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/common/service/ISysUserStationService.java b/yjh-mes/src/main/java/cn/sourceplan/common/service/ISysUserStationService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/common/service/ISysUserStationService.java rename to yjh-mes/src/main/java/cn/sourceplan/common/service/ISysUserStationService.java index acc9e5b..4c17317 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/service/ISysUserStationService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/service/ISysUserStationService.java @@ -1,8 +1,9 @@ package cn.sourceplan.common.service; -import java.util.List; import cn.sourceplan.common.domain.SysUserStation; +import java.util.List; + /** * 用户工位绑定Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysCodeRuleServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysCodeRuleServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysCodeRuleServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysCodeRuleServiceImpl.java index 2dd6bd9..fab5099 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysCodeRuleServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysCodeRuleServiceImpl.java @@ -1,27 +1,25 @@ package cn.sourceplan.common.service.impl; +import cn.sourceplan.common.domain.SysCodeRule; +import cn.sourceplan.common.domain.SysCodeRuleEntry; +import cn.sourceplan.common.mapper.SysCodeRuleEntryMapper; +import cn.sourceplan.common.mapper.SysCodeRuleMapper; +import cn.sourceplan.common.service.ISysCodeRuleService; +import cn.sourceplan.common.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.mapper.SysCodeRuleEntryMapper; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.masterdata.service.impl.MaterialServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Service; -import java.util.ArrayList; -import cn.sourceplan.common.utils.StringUtils; -import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.common.domain.SysCodeRuleEntry; -import cn.sourceplan.common.mapper.SysCodeRuleMapper; -import cn.sourceplan.common.domain.SysCodeRule; -import cn.sourceplan.common.service.ISysCodeRuleService; - /** * 编码规则Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysUserStationServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysUserStationServiceImpl.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysUserStationServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysUserStationServiceImpl.java index eb99d12..b7cdc17 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/service/impl/SysUserStationServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/service/impl/SysUserStationServiceImpl.java @@ -1,22 +1,18 @@ package cn.sourceplan.common.service.impl; +import cn.sourceplan.common.domain.SysUserStation; +import cn.sourceplan.common.mapper.SysUserStationMapper; +import cn.sourceplan.common.service.ISysUserStationService; +import cn.sourceplan.common.utils.SecurityUtils; +import cn.sourceplan.masterdata.domain.Station; +import cn.sourceplan.masterdata.mapper.StationMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Date; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.core.domain.model.LoginUser; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.common.utils.SecurityUtils; -import cn.sourceplan.common.utils.StringUtils; -import cn.sourceplan.masterdata.domain.Station; -import cn.sourceplan.masterdata.mapper.StationMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.token.TokenService; -import org.springframework.stereotype.Service; -import cn.sourceplan.common.mapper.SysUserStationMapper; -import cn.sourceplan.common.domain.SysUserStation; -import cn.sourceplan.common.service.ISysUserStationService; - /** * 用户工位绑定Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/common/utils/MesDateUtil.java b/yjh-mes/src/main/java/cn/sourceplan/common/utils/MesDateUtil.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/common/utils/MesDateUtil.java rename to yjh-mes/src/main/java/cn/sourceplan/common/utils/MesDateUtil.java diff --git a/yjh-mes/src/main/java/com/ruoyi/common/utils/SqlCheckUtil.java b/yjh-mes/src/main/java/cn/sourceplan/common/utils/SqlCheckUtil.java similarity index 89% rename from yjh-mes/src/main/java/com/ruoyi/common/utils/SqlCheckUtil.java rename to yjh-mes/src/main/java/cn/sourceplan/common/utils/SqlCheckUtil.java index 30d92c5..d830979 100644 --- a/yjh-mes/src/main/java/com/ruoyi/common/utils/SqlCheckUtil.java +++ b/yjh-mes/src/main/java/cn/sourceplan/common/utils/SqlCheckUtil.java @@ -1,16 +1,10 @@ package cn.sourceplan.common.utils; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; import cn.sourceplan.common.mapper.SqlCheckMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletRequest; -import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/EquipmentController.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/EquipmentController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/equipment/controller/EquipmentController.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/controller/EquipmentController.java index e7285e3..0943dee 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/EquipmentController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/EquipmentController.java @@ -1,30 +1,21 @@ package cn.sourceplan.equipment.controller; -import java.util.List; -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.equipment.domain.Equipment; import cn.sourceplan.equipment.service.IEquipmentService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import com.alibaba.fastjson2.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 设备信息Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/InspectionItemController.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/InspectionItemController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/equipment/controller/InspectionItemController.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/controller/InspectionItemController.java index bbed20b..50a11b2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/InspectionItemController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/InspectionItemController.java @@ -1,25 +1,19 @@ package cn.sourceplan.equipment.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.equipment.domain.InspectionItem; import cn.sourceplan.equipment.service.IInspectionItemService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 设备项目Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/RepairOrderController.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/RepairOrderController.java similarity index 88% rename from yjh-mes/src/main/java/com/ruoyi/equipment/controller/RepairOrderController.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/controller/RepairOrderController.java index abbb877..59c3675 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/controller/RepairOrderController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/controller/RepairOrderController.java @@ -1,27 +1,20 @@ package cn.sourceplan.equipment.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.equipment.domain.RepairOrder; import cn.sourceplan.equipment.service.IRepairOrderService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 设备维修单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/Equipment.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/Equipment.java similarity index 93% rename from yjh-mes/src/main/java/com/ruoyi/equipment/domain/Equipment.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/domain/Equipment.java index 52a2f9d..b83c98f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/Equipment.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/Equipment.java @@ -1,11 +1,9 @@ package cn.sourceplan.equipment.domain; -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; /** * 设备信息对象 dm_equipment diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/InspectionItem.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/InspectionItem.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/equipment/domain/InspectionItem.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/domain/InspectionItem.java index 21d21fd..dfac506 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/InspectionItem.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/InspectionItem.java @@ -1,13 +1,11 @@ package cn.sourceplan.equipment.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 设备项目对象 dm_inspection_item diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrder.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrder.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrder.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrder.java index 4963675..47f985e 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrder.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrder.java @@ -1,18 +1,16 @@ package cn.sourceplan.equipment.domain; -import java.util.List; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.util.Date; +import java.util.List; /** * 设备维修单对象 dm_repair_order diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrderEntry.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrderEntry.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrderEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrderEntry.java index 92ea9f2..4960d4a 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/domain/RepairOrderEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/domain/RepairOrderEntry.java @@ -1,13 +1,11 @@ package cn.sourceplan.equipment.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 设备维修单明细对象 dm_repair_order_entry diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/EquipmentMapper.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/EquipmentMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/equipment/mapper/EquipmentMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/EquipmentMapper.java index 821dd64..c7aafa1 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/EquipmentMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/EquipmentMapper.java @@ -1,14 +1,13 @@ package cn.sourceplan.equipment.mapper; +import cn.sourceplan.equipment.domain.Equipment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + import java.util.List; import java.util.Map; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.equipment.domain.Equipment; -import cn.sourceplan.finance.domain.Payroll; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - /** * 设备信息Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/InspectionItemMapper.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/InspectionItemMapper.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/equipment/mapper/InspectionItemMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/InspectionItemMapper.java index 8a493a6..bfa89c2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/InspectionItemMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/InspectionItemMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.equipment.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.equipment.domain.Equipment; import cn.sourceplan.equipment.domain.InspectionItem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderEntryMapper.java similarity index 82% rename from yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderEntryMapper.java index a5dd12d..84fdbd7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderEntryMapper.java @@ -1,13 +1,10 @@ package cn.sourceplan.equipment.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.equipment.domain.RepairOrder; import cn.sourceplan.equipment.domain.RepairOrderEntry; -import cn.sourceplan.finance.domain.PieceWagePlan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; -import java.util.List; /** * 设备维修单Mapper接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderMapper.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderMapper.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderMapper.java index 35bb10b..b4e77fc 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/mapper/RepairOrderMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/mapper/RepairOrderMapper.java @@ -1,11 +1,7 @@ package cn.sourceplan.equipment.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.equipment.domain.InspectionItem; import cn.sourceplan.equipment.domain.RepairOrder; -import cn.sourceplan.equipment.domain.RepairOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IEquipmentService.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IEquipmentService.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/IEquipmentService.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/IEquipmentService.java index 84ec40b..193a0c0 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IEquipmentService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IEquipmentService.java @@ -1,13 +1,10 @@ package cn.sourceplan.equipment.service; -import java.util.List; -import java.util.Map; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; import cn.sourceplan.equipment.domain.Equipment; +import com.alibaba.fastjson2.JSONObject; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 设备信息Service接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IInspectionItemService.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IInspectionItemService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/IInspectionItemService.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/IInspectionItemService.java index 1785409..cd333a6 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IInspectionItemService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IInspectionItemService.java @@ -1,8 +1,9 @@ package cn.sourceplan.equipment.service; -import java.util.List; import cn.sourceplan.equipment.domain.InspectionItem; +import java.util.List; + /** * 设备项目Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IRepairOrderService.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IRepairOrderService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/IRepairOrderService.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/IRepairOrderService.java index 733293f..416de8d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/IRepairOrderService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/IRepairOrderService.java @@ -1,8 +1,9 @@ package cn.sourceplan.equipment.service; -import java.util.List; import cn.sourceplan.equipment.domain.RepairOrder; +import java.util.List; + /** * 设备维修单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/EquipmentServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/EquipmentServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/EquipmentServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/EquipmentServiceImpl.java index d120662..aa03938 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/EquipmentServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/EquipmentServiceImpl.java @@ -1,25 +1,21 @@ package cn.sourceplan.equipment.service.impl; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; - import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.sourceplan.common.utils.MesDateUtil; +import cn.sourceplan.equipment.domain.Equipment; +import cn.sourceplan.equipment.mapper.EquipmentMapper; +import cn.sourceplan.equipment.service.IEquipmentService; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.common.utils.MesDateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.equipment.mapper.EquipmentMapper; -import cn.sourceplan.equipment.domain.Equipment; -import cn.sourceplan.equipment.service.IEquipmentService; import javax.servlet.http.HttpServletRequest; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; /** * 设备信息Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/InspectionItemServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/InspectionItemServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/InspectionItemServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/InspectionItemServiceImpl.java index fca838f..8207656 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/InspectionItemServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/InspectionItemServiceImpl.java @@ -1,16 +1,15 @@ package cn.sourceplan.equipment.service.impl; +import cn.sourceplan.equipment.domain.InspectionItem; +import cn.sourceplan.equipment.mapper.InspectionItemMapper; +import cn.sourceplan.equipment.service.IInspectionItemService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Arrays; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import cn.sourceplan.equipment.mapper.InspectionItemMapper; -import cn.sourceplan.equipment.domain.InspectionItem; -import cn.sourceplan.equipment.service.IInspectionItemService; - /** * 设备项目Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/RepairOrderServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/RepairOrderServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/RepairOrderServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/RepairOrderServiceImpl.java index bc85cb1..17d433d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/equipment/service/impl/RepairOrderServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/equipment/service/impl/RepairOrderServiceImpl.java @@ -1,19 +1,18 @@ package cn.sourceplan.equipment.service.impl; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.equipment.domain.RepairOrder; +import cn.sourceplan.equipment.domain.RepairOrderEntry; import cn.sourceplan.equipment.mapper.RepairOrderEntryMapper; +import cn.sourceplan.equipment.mapper.RepairOrderMapper; +import cn.sourceplan.equipment.service.IRepairOrderService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.equipment.domain.RepairOrderEntry; -import cn.sourceplan.equipment.mapper.RepairOrderMapper; -import cn.sourceplan.equipment.domain.RepairOrder; -import cn.sourceplan.equipment.service.IRepairOrderService; + +import java.util.ArrayList; +import java.util.List; /** * 设备维修单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/controller/PayrollController.java b/yjh-mes/src/main/java/cn/sourceplan/finance/controller/PayrollController.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/finance/controller/PayrollController.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/controller/PayrollController.java index 021d5e7..8e2d7c4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/controller/PayrollController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/controller/PayrollController.java @@ -1,22 +1,21 @@ package cn.sourceplan.finance.controller; -import java.math.BigDecimal; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import cn.sourceplan.production.domain.Report; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.finance.domain.Payroll; import cn.sourceplan.finance.service.IPayrollService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.List; /** * 工资单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/controller/PieceWagePlanController.java b/yjh-mes/src/main/java/cn/sourceplan/finance/controller/PieceWagePlanController.java similarity index 88% rename from yjh-mes/src/main/java/com/ruoyi/finance/controller/PieceWagePlanController.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/controller/PieceWagePlanController.java index c96518e..89dbf76 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/controller/PieceWagePlanController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/controller/PieceWagePlanController.java @@ -1,25 +1,19 @@ package cn.sourceplan.finance.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.finance.domain.PieceWagePlan; import cn.sourceplan.finance.service.IPieceWagePlanService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 计件工资方案Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/domain/Payroll.java b/yjh-mes/src/main/java/cn/sourceplan/finance/domain/Payroll.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/finance/domain/Payroll.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/domain/Payroll.java index 6fee323..65ec6c9 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/domain/Payroll.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/domain/Payroll.java @@ -1,16 +1,16 @@ package cn.sourceplan.finance.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + import java.math.BigDecimal; import java.util.Date; -import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; - /** * 工资单对象 fm_payroll * diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/domain/PieceWagePlan.java b/yjh-mes/src/main/java/cn/sourceplan/finance/domain/PieceWagePlan.java similarity index 91% rename from yjh-mes/src/main/java/com/ruoyi/finance/domain/PieceWagePlan.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/domain/PieceWagePlan.java index f075248..06c5d8b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/domain/PieceWagePlan.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/domain/PieceWagePlan.java @@ -1,16 +1,13 @@ package cn.sourceplan.finance.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + import java.math.BigDecimal; import java.util.Date; -import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; - /** * 计件工资方案对象 fm_piece_wage_plan * diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/mapper/PayrollMapper.java b/yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PayrollMapper.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/finance/mapper/PayrollMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PayrollMapper.java index 9155d03..cf70ccc 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/mapper/PayrollMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PayrollMapper.java @@ -1,14 +1,12 @@ package cn.sourceplan.finance.mapper; -import java.math.BigDecimal; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.finance.domain.Payroll; -import cn.sourceplan.finance.domain.PieceWagePlan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.math.BigDecimal; + /** * 工资单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/mapper/PieceWagePlanMapper.java b/yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PieceWagePlanMapper.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/finance/mapper/PieceWagePlanMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PieceWagePlanMapper.java index ed8ae34..0606460 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/mapper/PieceWagePlanMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/mapper/PieceWagePlanMapper.java @@ -1,14 +1,11 @@ package cn.sourceplan.finance.mapper; -import java.util.Collection; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.finance.domain.PieceWagePlan; -import cn.sourceplan.production.domain.WorkOrder; -import cn.sourceplan.sale.domain.SalOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.Collection; + /** * 计件工资方案Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/service/IPayrollService.java b/yjh-mes/src/main/java/cn/sourceplan/finance/service/IPayrollService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/finance/service/IPayrollService.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/service/IPayrollService.java index 013b3ad..3b4ac9b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/service/IPayrollService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/service/IPayrollService.java @@ -1,12 +1,11 @@ package cn.sourceplan.finance.service; -import java.math.BigDecimal; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.finance.domain.Payroll; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.List; /** * 工资单Service接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/service/IPieceWagePlanService.java b/yjh-mes/src/main/java/cn/sourceplan/finance/service/IPieceWagePlanService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/finance/service/IPieceWagePlanService.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/service/IPieceWagePlanService.java index 6eadceb..b812be4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/service/IPieceWagePlanService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/service/IPieceWagePlanService.java @@ -1,8 +1,9 @@ package cn.sourceplan.finance.service; -import java.util.List; import cn.sourceplan.finance.domain.PieceWagePlan; +import java.util.List; + /** * 计件工资方案Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PayrollServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PayrollServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PayrollServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PayrollServiceImpl.java index 0efec3a..38d0066 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PayrollServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PayrollServiceImpl.java @@ -1,28 +1,30 @@ package cn.sourceplan.finance.service.impl; -import java.math.BigDecimal; -import java.util.*; -import java.util.stream.Collectors; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.core.domain.entity.SysUser; import cn.sourceplan.common.service.ISysCodeRuleService; +import cn.sourceplan.finance.domain.Payroll; import cn.sourceplan.finance.domain.PieceWagePlan; +import cn.sourceplan.finance.mapper.PayrollMapper; import cn.sourceplan.finance.mapper.PieceWagePlanMapper; +import cn.sourceplan.finance.service.IPayrollService; import cn.sourceplan.production.domain.Report; import cn.sourceplan.production.mapper.ReportMapper; import cn.sourceplan.quality.domain.ReportQuality; import cn.sourceplan.quality.mapper.ReportQualityMapper; import cn.sourceplan.system.mapper.SysUserMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.finance.mapper.PayrollMapper; -import cn.sourceplan.finance.domain.Payroll; -import cn.sourceplan.finance.service.IPayrollService; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 工资单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PieceWagePlanServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PieceWagePlanServiceImpl.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PieceWagePlanServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PieceWagePlanServiceImpl.java index e9f71c2..806fac7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/finance/service/impl/PieceWagePlanServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/finance/service/impl/PieceWagePlanServiceImpl.java @@ -1,16 +1,13 @@ package cn.sourceplan.finance.service.impl; -import java.util.Arrays; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.method.P; -import org.springframework.stereotype.Service; -import cn.sourceplan.finance.mapper.PieceWagePlanMapper; import cn.sourceplan.finance.domain.PieceWagePlan; +import cn.sourceplan.finance.mapper.PieceWagePlanMapper; import cn.sourceplan.finance.service.IPieceWagePlanService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; /** * 计件工资方案Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegrateDataSourceController.java b/yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegrateDataSourceController.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegrateDataSourceController.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegrateDataSourceController.java index db954a2..b04cbc4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegrateDataSourceController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegrateDataSourceController.java @@ -1,7 +1,6 @@ package cn.sourceplan.integration.controller; import cn.hutool.http.HttpRequest; - import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegratePlanController.java b/yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegratePlanController.java similarity index 93% rename from yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegratePlanController.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegratePlanController.java index d11c36f..7fed499 100644 --- a/yjh-mes/src/main/java/com/ruoyi/integration/controller/IntegratePlanController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/integration/controller/IntegratePlanController.java @@ -1,10 +1,5 @@ package cn.sourceplan.integration.controller; -import cn.hutool.core.util.ReflectUtil; - -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; @@ -14,14 +9,11 @@ import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.integration.domain.IntegratePlan; import cn.sourceplan.integration.service.IIntegratePlanService; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/domain/InteDataSourceField.java b/yjh-mes/src/main/java/cn/sourceplan/integration/domain/InteDataSourceField.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/domain/InteDataSourceField.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/domain/InteDataSourceField.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/domain/IntePlanField.java b/yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntePlanField.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/domain/IntePlanField.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntePlanField.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/domain/IntegrateDataSource.java b/yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntegrateDataSource.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/domain/IntegrateDataSource.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntegrateDataSource.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/domain/IntegratePlan.java b/yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntegratePlan.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/domain/IntegratePlan.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/domain/IntegratePlan.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/mapper/IntegrateDataSourceMapper.java b/yjh-mes/src/main/java/cn/sourceplan/integration/mapper/IntegrateDataSourceMapper.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/mapper/IntegrateDataSourceMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/mapper/IntegrateDataSourceMapper.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/mapper/IntegratePlanMapper.java b/yjh-mes/src/main/java/cn/sourceplan/integration/mapper/IntegratePlanMapper.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/mapper/IntegratePlanMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/mapper/IntegratePlanMapper.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/service/IIntegrateDataSourceService.java b/yjh-mes/src/main/java/cn/sourceplan/integration/service/IIntegrateDataSourceService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/service/IIntegrateDataSourceService.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/service/IIntegrateDataSourceService.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/service/IIntegratePlanService.java b/yjh-mes/src/main/java/cn/sourceplan/integration/service/IIntegratePlanService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/service/IIntegratePlanService.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/service/IIntegratePlanService.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/service/impl/IntegrateDataSourceServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/integration/service/impl/IntegrateDataSourceServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/service/impl/IntegrateDataSourceServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/service/impl/IntegrateDataSourceServiceImpl.java diff --git a/yjh-mes/src/main/java/com/ruoyi/integration/service/impl/IntegratePlanServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/integration/service/impl/IntegratePlanServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/integration/service/impl/IntegratePlanServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/integration/service/impl/IntegratePlanServiceImpl.java diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/BomController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/BomController.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/BomController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/BomController.java index ea4aedd..bbdecf1 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/BomController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/BomController.java @@ -1,24 +1,18 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Bom; import cn.sourceplan.masterdata.service.IBomService; -import cn.sourceplan.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 物料BOMController diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/CustomerController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/CustomerController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/CustomerController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/CustomerController.java index d52b11c..0912934 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/CustomerController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/CustomerController.java @@ -1,25 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Customer; import cn.sourceplan.masterdata.service.ICustomerService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 客户Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialClassController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialClassController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialClassController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialClassController.java index ca9cd7c..1ef295f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialClassController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialClassController.java @@ -1,24 +1,18 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.MaterialClass; import cn.sourceplan.masterdata.service.IMaterialClassService; -import cn.sourceplan.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 物料分类Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialController.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialController.java index d39386e..da819f6 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/MaterialController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/MaterialController.java @@ -1,27 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import cn.hutool.core.util.DesensitizedUtil; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Material; import cn.sourceplan.masterdata.service.IMaterialService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 物料Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/StationController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/StationController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/StationController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/StationController.java index 2fef0c1..c2c39f7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/StationController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/StationController.java @@ -1,25 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Station; import cn.sourceplan.masterdata.service.IStationService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 工位Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitChangeController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitChangeController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitChangeController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitChangeController.java index b6d27c0..2ad5521 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitChangeController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitChangeController.java @@ -1,25 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.UnitChange; import cn.sourceplan.masterdata.service.IUnitChangeService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 计量单位转换Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitController.java index bfd1200..9df0fa2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/UnitController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/UnitController.java @@ -1,25 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Unit; import cn.sourceplan.masterdata.service.IUnitService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 计量单位Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/WorkshopController.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/WorkshopController.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/controller/WorkshopController.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/WorkshopController.java index b141cf1..2db6c2b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/controller/WorkshopController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/controller/WorkshopController.java @@ -1,27 +1,19 @@ package cn.sourceplan.masterdata.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import cn.sourceplan.common.utils.SqlCheckUtil; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.masterdata.domain.Workshop; import cn.sourceplan.masterdata.service.IWorkshopService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 车间Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Bom.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Bom.java similarity index 91% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Bom.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Bom.java index a945f23..45b730c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Bom.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Bom.java @@ -1,16 +1,14 @@ package cn.sourceplan.masterdata.domain; -import java.math.BigDecimal; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.TreeEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.TreeEntity; + +import java.math.BigDecimal; /** * 物料BOM对象 md_bom diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Customer.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Customer.java similarity index 94% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Customer.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Customer.java index d2c7127..0bb9e76 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Customer.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Customer.java @@ -1,13 +1,11 @@ package cn.sourceplan.masterdata.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 客户对象 md_customer diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Material.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Material.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Material.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Material.java index 3fd7980..2fa0c8c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Material.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Material.java @@ -1,11 +1,10 @@ package cn.sourceplan.masterdata.domain; -import com.baomidou.mybatisplus.annotation.*; - -import lombok.Data; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; /** * 物料对象 md_material diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/MaterialClass.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/MaterialClass.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/MaterialClass.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/MaterialClass.java index 91e3f23..fb24272 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/MaterialClass.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/MaterialClass.java @@ -1,10 +1,8 @@ package cn.sourceplan.masterdata.domain; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.TreeEntity; +import lombok.Data; /** * 物料分类对象 md_material_class diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Station.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Station.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Station.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Station.java index f884888..0e1add0 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Station.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Station.java @@ -1,15 +1,13 @@ package cn.sourceplan.masterdata.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; +import cn.sourceplan.equipment.domain.Equipment; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import cn.sourceplan.equipment.domain.Equipment; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; import java.util.List; diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Unit.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Unit.java similarity index 78% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Unit.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Unit.java index 970499b..b7b7f45 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Unit.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Unit.java @@ -1,11 +1,8 @@ package cn.sourceplan.masterdata.domain; +import cn.sourceplan.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 计量单位对象 md_unit diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/UnitChange.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/UnitChange.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/UnitChange.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/UnitChange.java index 3da62d5..be5cf35 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/UnitChange.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/UnitChange.java @@ -1,12 +1,10 @@ package cn.sourceplan.masterdata.domain; -import java.math.BigDecimal; - -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; /** * 计量单位转换对象 md_unit_change diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Workshop.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Workshop.java similarity index 89% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Workshop.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Workshop.java index 0f8de5e..66208fd 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/domain/Workshop.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/domain/Workshop.java @@ -1,11 +1,9 @@ package cn.sourceplan.masterdata.domain; -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; /** * 车间对象 md_workshop diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/BomMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/BomMapper.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/BomMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/BomMapper.java index 6c1a333..457c479 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/BomMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/BomMapper.java @@ -1,14 +1,11 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.masterdata.domain.Bom; -import cn.sourceplan.masterdata.domain.Material; -import org.apache.ibatis.annotations.Select; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 物料BOMMapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/CustomerMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/CustomerMapper.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/CustomerMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/CustomerMapper.java index 7d15222..0287372 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/CustomerMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/CustomerMapper.java @@ -1,9 +1,7 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.masterdata.domain.Customer; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialClassMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialClassMapper.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialClassMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialClassMapper.java index 44be107..8b91361 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialClassMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialClassMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.masterdata.domain.Material; import cn.sourceplan.masterdata.domain.MaterialClass; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 物料分类Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialMapper.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialMapper.java index 2eecadc..1daacce 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/MaterialMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/MaterialMapper.java @@ -1,9 +1,7 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.masterdata.domain.Material; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/StationMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/StationMapper.java similarity index 94% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/StationMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/StationMapper.java index f35f29b..7942af6 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/StationMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/StationMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.masterdata.domain.Bom; import cn.sourceplan.masterdata.domain.Station; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 工位Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitChangeMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitChangeMapper.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitChangeMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitChangeMapper.java index 9ceb566..2fb1e50 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitChangeMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitChangeMapper.java @@ -1,11 +1,11 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.masterdata.domain.UnitChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 计量单位转换Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitMapper.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitMapper.java index baf1ad8..6be914f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/UnitMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/UnitMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.masterdata.domain.Unit; -import cn.sourceplan.masterdata.domain.UnitChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/WorkshopMapper.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/WorkshopMapper.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/WorkshopMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/WorkshopMapper.java index a78f827..977ec84 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/mapper/WorkshopMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/mapper/WorkshopMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.masterdata.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.masterdata.domain.Bom; import cn.sourceplan.masterdata.domain.Workshop; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IBomService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IBomService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IBomService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IBomService.java index ab4fcf1..2aa4aa9 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IBomService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IBomService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.Bom; +import java.util.List; + /** * 物料BOMService接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/ICustomerService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/ICustomerService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/ICustomerService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/ICustomerService.java index 0151bfd..a863358 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/ICustomerService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/ICustomerService.java @@ -1,8 +1,9 @@ package cn.sourceplan.masterdata.service; -import java.util.List; import cn.sourceplan.masterdata.domain.Customer; +import java.util.List; + /** * 客户Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialClassService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialClassService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialClassService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialClassService.java index eeb6eac..645f659 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialClassService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialClassService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.MaterialClass; +import java.util.List; + /** * 物料分类Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialService.java index 51b417c..9ddcf82 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IMaterialService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IMaterialService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.Material; +import java.util.List; + /** * 物料Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IStationService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IStationService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IStationService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IStationService.java index e76b239..1c6a14a 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IStationService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IStationService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.Station; +import java.util.List; + /** * 工位Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitChangeService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitChangeService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitChangeService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitChangeService.java index 78f565c..8cd35d4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitChangeService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitChangeService.java @@ -1,8 +1,9 @@ package cn.sourceplan.masterdata.service; -import java.util.List; import cn.sourceplan.masterdata.domain.UnitChange; +import java.util.List; + /** * 计量单位转换Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitService.java index ee06bf3..1924028 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IUnitService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IUnitService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.Unit; +import java.util.List; + /** * 计量单位Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IWorkshopService.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IWorkshopService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/IWorkshopService.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IWorkshopService.java index 1ae8904..6e2e532 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/IWorkshopService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/IWorkshopService.java @@ -1,10 +1,10 @@ package cn.sourceplan.masterdata.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.masterdata.domain.Workshop; +import java.util.List; + /** * 车间Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/BomServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/BomServiceImpl.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/BomServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/BomServiceImpl.java index 31b8ba2..1745181 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/BomServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/BomServiceImpl.java @@ -1,19 +1,15 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.common.utils.StringUtils; -import cn.sourceplan.masterdata.domain.Material; +import cn.sourceplan.masterdata.domain.Bom; +import cn.sourceplan.masterdata.mapper.BomMapper; +import cn.sourceplan.masterdata.service.IBomService; import cn.sourceplan.masterdata.service.IMaterialService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.BomMapper; -import cn.sourceplan.masterdata.domain.Bom; -import cn.sourceplan.masterdata.service.IBomService; + +import java.util.List; /** * 物料BOMService业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/CustomerServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/CustomerServiceImpl.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/CustomerServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/CustomerServiceImpl.java index c7c6d7e..e84b6f0 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/CustomerServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/CustomerServiceImpl.java @@ -1,14 +1,13 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; - +import cn.sourceplan.masterdata.domain.Customer; +import cn.sourceplan.masterdata.mapper.CustomerMapper; +import cn.sourceplan.masterdata.service.ICustomerService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.CustomerMapper; -import cn.sourceplan.masterdata.domain.Customer; -import cn.sourceplan.masterdata.service.ICustomerService; + +import java.util.List; /** * 客户Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialClassServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialClassServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialClassServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialClassServiceImpl.java index 0b82095..1835b1b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialClassServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialClassServiceImpl.java @@ -1,15 +1,15 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.masterdata.domain.MaterialClass; +import cn.sourceplan.masterdata.mapper.MaterialClassMapper; +import cn.sourceplan.masterdata.service.IMaterialClassService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.MaterialClassMapper; -import cn.sourceplan.masterdata.domain.MaterialClass; -import cn.sourceplan.masterdata.service.IMaterialClassService; + +import java.util.List; /** * 物料分类Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialServiceImpl.java index 9c7eacc..18103c8 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/MaterialServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/MaterialServiceImpl.java @@ -1,17 +1,17 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.masterdata.domain.Material; +import cn.sourceplan.masterdata.mapper.MaterialMapper; +import cn.sourceplan.masterdata.service.IMaterialService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.MaterialMapper; -import cn.sourceplan.masterdata.domain.Material; -import cn.sourceplan.masterdata.service.IMaterialService; + +import java.util.List; /** * 物料Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/StationServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/StationServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/StationServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/StationServiceImpl.java index f266d08..c79bb91 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/StationServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/StationServiceImpl.java @@ -1,15 +1,15 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.masterdata.domain.Station; +import cn.sourceplan.masterdata.mapper.StationMapper; +import cn.sourceplan.masterdata.service.IStationService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.StationMapper; -import cn.sourceplan.masterdata.domain.Station; -import cn.sourceplan.masterdata.service.IStationService; + +import java.util.List; /** * 工位Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitChangeServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitChangeServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitChangeServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitChangeServiceImpl.java index bb70b64..a8d49b5 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitChangeServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitChangeServiceImpl.java @@ -1,11 +1,12 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; +import cn.sourceplan.masterdata.domain.UnitChange; +import cn.sourceplan.masterdata.mapper.UnitChangeMapper; +import cn.sourceplan.masterdata.service.IUnitChangeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.UnitChangeMapper; -import cn.sourceplan.masterdata.domain.UnitChange; -import cn.sourceplan.masterdata.service.IUnitChangeService; + +import java.util.List; /** * 计量单位转换Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitServiceImpl.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitServiceImpl.java index ccf8350..433fc0d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/UnitServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/UnitServiceImpl.java @@ -1,19 +1,17 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.masterdata.domain.Unit; +import cn.sourceplan.masterdata.mapper.UnitMapper; +import cn.sourceplan.masterdata.service.IUnitService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.UnitMapper; -import cn.sourceplan.masterdata.domain.Unit; -import cn.sourceplan.masterdata.service.IUnitService; + +import java.util.List; /** * 计量单位Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/WorkshopServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/WorkshopServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/WorkshopServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/WorkshopServiceImpl.java index 2711061..e473c1e 100644 --- a/yjh-mes/src/main/java/com/ruoyi/masterdata/service/impl/WorkshopServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/masterdata/service/impl/WorkshopServiceImpl.java @@ -1,17 +1,16 @@ package cn.sourceplan.masterdata.service.impl; -import java.util.List; -import java.util.Map; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.masterdata.domain.Workshop; +import cn.sourceplan.masterdata.mapper.WorkshopMapper; +import cn.sourceplan.masterdata.service.IWorkshopService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.masterdata.mapper.WorkshopMapper; -import cn.sourceplan.masterdata.domain.Workshop; -import cn.sourceplan.masterdata.service.IWorkshopService; + +import java.util.List; /** * 车间Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/production/controller/ProcessController.java b/yjh-mes/src/main/java/cn/sourceplan/production/controller/ProcessController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/production/controller/ProcessController.java rename to yjh-mes/src/main/java/cn/sourceplan/production/controller/ProcessController.java index 9aedf9b..91f20fb 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/controller/ProcessController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/controller/ProcessController.java @@ -1,25 +1,19 @@ package cn.sourceplan.production.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.production.domain.Process; import cn.sourceplan.production.service.IProcessService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 工序Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/production/controller/ReportController.java b/yjh-mes/src/main/java/cn/sourceplan/production/controller/ReportController.java similarity index 87% rename from yjh-mes/src/main/java/com/ruoyi/production/controller/ReportController.java rename to yjh-mes/src/main/java/cn/sourceplan/production/controller/ReportController.java index 4bba1d6..984b3b3 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/controller/ReportController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/controller/ReportController.java @@ -1,25 +1,19 @@ package cn.sourceplan.production.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.production.domain.Report; import cn.sourceplan.production.service.IReportService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 报工单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/production/controller/RouteController.java b/yjh-mes/src/main/java/cn/sourceplan/production/controller/RouteController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/production/controller/RouteController.java rename to yjh-mes/src/main/java/cn/sourceplan/production/controller/RouteController.java index 14634b8..882b449 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/controller/RouteController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/controller/RouteController.java @@ -1,25 +1,19 @@ package cn.sourceplan.production.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.production.domain.Route; import cn.sourceplan.production.service.IRouteService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 工序路线Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/production/controller/WorkOrderController.java b/yjh-mes/src/main/java/cn/sourceplan/production/controller/WorkOrderController.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/production/controller/WorkOrderController.java rename to yjh-mes/src/main/java/cn/sourceplan/production/controller/WorkOrderController.java index 76011c3..d22b968 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/controller/WorkOrderController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/controller/WorkOrderController.java @@ -1,27 +1,19 @@ package cn.sourceplan.production.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.production.domain.WorkOrder; import cn.sourceplan.production.service.IWorkOrderService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 工单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/Process.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Process.java similarity index 87% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/Process.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/Process.java index b91b7d6..afd13a9 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/Process.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Process.java @@ -1,13 +1,10 @@ package cn.sourceplan.production.domain; -import com.baomidou.mybatisplus.annotation.*; -import cn.sourceplan.common.domain.SysFileInfo; -import cn.sourceplan.masterdata.domain.Material; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import cn.sourceplan.common.domain.SysFileInfo; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; import java.util.List; diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/Report.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Report.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/Report.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/Report.java index 1275645..f855a4e 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/Report.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Report.java @@ -1,17 +1,14 @@ package cn.sourceplan.production.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; +import cn.sourceplan.quality.domain.ReportQuality; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + import java.math.BigDecimal; import java.util.Date; -import java.util.List; - -import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonFormat; -import cn.sourceplan.quality.domain.ReportQuality; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 报工单对象 pro_report diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/Route.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Route.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/Route.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/Route.java index 5d432cc..330b8ff 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/Route.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/Route.java @@ -1,13 +1,11 @@ package cn.sourceplan.production.domain; -import java.util.List; - -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.util.List; /** * 工序路线对象 pro_route diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/RouteProcess.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/RouteProcess.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/RouteProcess.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/RouteProcess.java index 8f3258e..ef21118 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/RouteProcess.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/RouteProcess.java @@ -1,13 +1,11 @@ package cn.sourceplan.production.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; import java.math.BigDecimal; diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrder.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrder.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrder.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrder.java index 2a95c9e..e0444a6 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrder.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrder.java @@ -1,20 +1,17 @@ package cn.sourceplan.production.domain; -import java.math.BigDecimal; -import java.util.List; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import com.sun.org.apache.xpath.internal.operations.Bool; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; /** * 工单对象 pro_workorder diff --git a/yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrderEntry.java b/yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrderEntry.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrderEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrderEntry.java index 13cb4ee..bf8d5f4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/domain/WorkOrderEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/domain/WorkOrderEntry.java @@ -1,17 +1,12 @@ package cn.sourceplan.production.domain; +import cn.sourceplan.common.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; import java.math.BigDecimal; -import java.util.List; /** * 工单分录对象 pro_workorder_entry diff --git a/yjh-mes/src/main/java/com/ruoyi/production/mapper/ProcessMapper.java b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/ProcessMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/production/mapper/ProcessMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/production/mapper/ProcessMapper.java index 37faaac..dd8ac94 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/mapper/ProcessMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/ProcessMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.production.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.masterdata.domain.Bom; import cn.sourceplan.production.domain.Process; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 工序Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/mapper/ReportMapper.java b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/ReportMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/production/mapper/ReportMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/production/mapper/ReportMapper.java index 24d4957..13673e4 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/mapper/ReportMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/ReportMapper.java @@ -1,15 +1,14 @@ package cn.sourceplan.production.mapper; -import java.util.List; - +import cn.sourceplan.production.domain.Report; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; -import cn.sourceplan.production.domain.Process; -import cn.sourceplan.production.domain.Report; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 报工单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/mapper/RouteMapper.java b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/RouteMapper.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/production/mapper/RouteMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/production/mapper/RouteMapper.java index d7704f1..2af5c14 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/mapper/RouteMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/RouteMapper.java @@ -1,13 +1,12 @@ package cn.sourceplan.production.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.production.domain.Process; import cn.sourceplan.production.domain.Route; import cn.sourceplan.production.domain.RouteProcess; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 工序路线Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderEntryMapper.java similarity index 72% rename from yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderEntryMapper.java index c57a128..957215c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderEntryMapper.java @@ -1,14 +1,9 @@ package cn.sourceplan.production.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.production.domain.WorkOrder; import cn.sourceplan.production.domain.WorkOrderEntry; -import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Map; - /** * 工单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderMapper.java b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderMapper.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderMapper.java index b6d29f8..5130f1d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/mapper/WorkOrderMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/mapper/WorkOrderMapper.java @@ -1,15 +1,14 @@ package cn.sourceplan.production.mapper; +import cn.sourceplan.production.domain.WorkOrder; +import cn.sourceplan.production.domain.WorkOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + import java.util.List; import java.util.Map; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.production.domain.Route; -import cn.sourceplan.production.domain.WorkOrder; -import cn.sourceplan.production.domain.WorkOrderEntry; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - /** * 工单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/IProcessService.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/IProcessService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/IProcessService.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/IProcessService.java index 6c3ac58..cbbe77e 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/IProcessService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/IProcessService.java @@ -1,10 +1,10 @@ package cn.sourceplan.production.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.production.domain.Process; +import java.util.List; + /** * 工序Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/IReportService.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/IReportService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/IReportService.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/IReportService.java index 8f80760..d6c5486 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/IReportService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/IReportService.java @@ -1,10 +1,10 @@ package cn.sourceplan.production.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.production.domain.Report; +import java.util.List; + /** * 报工单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/IRouteService.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/IRouteService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/IRouteService.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/IRouteService.java index 25e0efc..2168e02 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/IRouteService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/IRouteService.java @@ -1,10 +1,10 @@ package cn.sourceplan.production.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.production.domain.Route; +import java.util.List; + /** * 工序路线Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/IWorkOrderService.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/IWorkOrderService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/IWorkOrderService.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/IWorkOrderService.java index b147820..75910c2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/IWorkOrderService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/IWorkOrderService.java @@ -1,11 +1,11 @@ package cn.sourceplan.production.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.production.domain.WorkOrder; +import java.util.List; + /** * 工单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/ProcessServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ProcessServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/impl/ProcessServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ProcessServiceImpl.java index e2c5de8..467831f 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/ProcessServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ProcessServiceImpl.java @@ -1,17 +1,17 @@ package cn.sourceplan.production.service.impl; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.domain.SysFileInfo; import cn.sourceplan.common.mapper.SysFileInfoMapper; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.production.domain.Process; +import cn.sourceplan.production.mapper.ProcessMapper; +import cn.sourceplan.production.service.IProcessService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.production.mapper.ProcessMapper; -import cn.sourceplan.production.domain.Process; -import cn.sourceplan.production.service.IProcessService; + +import java.util.List; /** * 工序Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/ReportServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ReportServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/production/service/impl/ReportServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ReportServiceImpl.java index 6c9edf3..6d45c4c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/ReportServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/ReportServiceImpl.java @@ -1,24 +1,22 @@ package cn.sourceplan.production.service.impl; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.barcode.domain.MaterialSn; import cn.sourceplan.barcode.mapper.MaterialSnMapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.domain.SysCodeRule; import cn.sourceplan.common.service.ISysCodeRuleService; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.production.domain.Report; +import cn.sourceplan.production.mapper.ReportMapper; +import cn.sourceplan.production.service.IReportService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.production.mapper.ReportMapper; -import cn.sourceplan.production.domain.Report; -import cn.sourceplan.production.service.IReportService; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 报工单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/RouteServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/RouteServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/production/service/impl/RouteServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/impl/RouteServiceImpl.java index fac621f..14b3059 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/RouteServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/RouteServiceImpl.java @@ -1,20 +1,20 @@ package cn.sourceplan.production.service.impl; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.DateUtils; import cn.sourceplan.common.utils.SqlCheckUtil; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.production.domain.Route; import cn.sourceplan.production.domain.RouteProcess; +import cn.sourceplan.production.mapper.RouteMapper; +import cn.sourceplan.production.service.IRouteService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.production.mapper.RouteMapper; -import cn.sourceplan.production.domain.Route; -import cn.sourceplan.production.service.IRouteService; + +import java.util.ArrayList; +import java.util.List; /** * 工序路线Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/WorkOrderServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/WorkOrderServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/production/service/impl/WorkOrderServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/production/service/impl/WorkOrderServiceImpl.java index b19c1cc..e73218c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/production/service/impl/WorkOrderServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/production/service/impl/WorkOrderServiceImpl.java @@ -1,11 +1,6 @@ package cn.sourceplan.production.service.impl; -import java.math.BigDecimal; -import java.util.*; - import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.pagehelper.PageInfo; import cn.sourceplan.common.constant.HttpStatus; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.core.page.TableDataInfo; @@ -22,26 +17,27 @@ import cn.sourceplan.masterdata.mapper.MaterialMapper; import cn.sourceplan.masterdata.mapper.StationMapper; import cn.sourceplan.production.domain.Route; import cn.sourceplan.production.domain.RouteProcess; +import cn.sourceplan.production.domain.WorkOrder; +import cn.sourceplan.production.domain.WorkOrderEntry; import cn.sourceplan.production.mapper.RouteMapper; import cn.sourceplan.production.mapper.WorkOrderEntryMapper; +import cn.sourceplan.production.mapper.WorkOrderMapper; +import cn.sourceplan.production.service.IWorkOrderService; import cn.sourceplan.sale.domain.SalOrderEntry; import cn.sourceplan.sale.mapper.SalOrderEntryMapper; import cn.sourceplan.warehouse.domain.RealTimeInventory; import cn.sourceplan.warehouse.mapper.RealTimeInventoryMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageInfo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; - -import java.util.stream.Collectors; - import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.production.domain.WorkOrderEntry; -import cn.sourceplan.production.mapper.WorkOrderMapper; -import cn.sourceplan.production.domain.WorkOrder; -import cn.sourceplan.production.service.IWorkOrderService; -import static cn.sourceplan.common.utils.PageUtils.startPage; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/controller/QualityLevelController.java b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/QualityLevelController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/quality/controller/QualityLevelController.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/controller/QualityLevelController.java index 2e0b1d5..6f68a3d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/controller/QualityLevelController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/QualityLevelController.java @@ -1,25 +1,19 @@ package cn.sourceplan.quality.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.quality.domain.QualityLevel; import cn.sourceplan.quality.service.IQualityLevelService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 质检等级Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/controller/ReasonController.java b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReasonController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/quality/controller/ReasonController.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReasonController.java index c6b0b59..33d9442 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/controller/ReasonController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReasonController.java @@ -1,25 +1,19 @@ package cn.sourceplan.quality.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.quality.domain.Reason; import cn.sourceplan.quality.service.IReasonService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 质检原因Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/controller/ReportQualityController.java b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReportQualityController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/quality/controller/ReportQualityController.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReportQualityController.java index e9b7bd6..bcd8195 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/controller/ReportQualityController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/controller/ReportQualityController.java @@ -1,25 +1,19 @@ package cn.sourceplan.quality.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.quality.domain.ReportQuality; import cn.sourceplan.quality.service.IReportQualityService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 报工质检单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/domain/QualityLevel.java b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/QualityLevel.java similarity index 82% rename from yjh-mes/src/main/java/com/ruoyi/quality/domain/QualityLevel.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/domain/QualityLevel.java index 901dd0e..26c3a5b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/domain/QualityLevel.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/QualityLevel.java @@ -1,16 +1,11 @@ package cn.sourceplan.quality.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; - -import java.util.List; /** * 质检等级对象 qc_quality_level diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/domain/Reason.java b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/Reason.java similarity index 89% rename from yjh-mes/src/main/java/com/ruoyi/quality/domain/Reason.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/domain/Reason.java index be448e8..2c36594 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/domain/Reason.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/Reason.java @@ -1,13 +1,11 @@ package cn.sourceplan.quality.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 质检原因对象 qc_reason diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQuality.java b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQuality.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQuality.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQuality.java index f23e6c6..eab4dae 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQuality.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQuality.java @@ -1,19 +1,17 @@ package cn.sourceplan.quality.domain; -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; /** * 报工质检单对象 qc_report_quality diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQualityEntry.java b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQualityEntry.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQualityEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQualityEntry.java diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQualityReason.java b/yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQualityReason.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/domain/ReportQualityReason.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/domain/ReportQualityReason.java diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/QualityLevelMapper.java b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/QualityLevelMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/quality/mapper/QualityLevelMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/mapper/QualityLevelMapper.java index a5ad971..05ceb6d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/QualityLevelMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/QualityLevelMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.quality.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.production.domain.Process; import cn.sourceplan.quality.domain.QualityLevel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 质检等级Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReasonMapper.java b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReasonMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReasonMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReasonMapper.java index dfe5215..4225191 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReasonMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReasonMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.quality.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.quality.domain.QualityLevel; import cn.sourceplan.quality.domain.Reason; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 质检原因Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityEntryMapper.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityEntryMapper.java index 798f41d..1b29d8b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityEntryMapper.java @@ -1,12 +1,9 @@ package cn.sourceplan.quality.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.quality.domain.QualityLevel; import cn.sourceplan.quality.domain.ReportQualityEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; -import java.util.List; - /** * 质检等级Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityMapper.java b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityMapper.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityMapper.java index 3a9c594..0ac1c77 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.quality.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.quality.domain.Reason; import cn.sourceplan.quality.domain.ReportQuality; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityReasonMapper.java b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityReasonMapper.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityReasonMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityReasonMapper.java index 66e6545..07cb497 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/mapper/ReportQualityReasonMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/mapper/ReportQualityReasonMapper.java @@ -1,9 +1,7 @@ package cn.sourceplan.quality.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.common.domain.SysCodeRuleEntry; -import cn.sourceplan.quality.domain.ReportQualityEntry; import cn.sourceplan.quality.domain.ReportQualityReason; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/IQualityLevelService.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IQualityLevelService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/IQualityLevelService.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/IQualityLevelService.java index a63acc3..edee305 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/IQualityLevelService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IQualityLevelService.java @@ -1,10 +1,10 @@ package cn.sourceplan.quality.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.quality.domain.QualityLevel; +import java.util.List; + /** * 质检等级Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/IReasonService.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IReasonService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/IReasonService.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/IReasonService.java index 87d153b..616dea6 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/IReasonService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IReasonService.java @@ -1,10 +1,10 @@ package cn.sourceplan.quality.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.quality.domain.Reason; +import java.util.List; + /** * 质检原因Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/IReportQualityService.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IReportQualityService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/IReportQualityService.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/IReportQualityService.java index 70ec717..164f519 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/IReportQualityService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/IReportQualityService.java @@ -1,8 +1,9 @@ package cn.sourceplan.quality.service; -import java.util.List; import cn.sourceplan.quality.domain.ReportQuality; +import java.util.List; + /** * 报工质检单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/QualityLevelServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/QualityLevelServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/impl/QualityLevelServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/QualityLevelServiceImpl.java index 7b7cdd2..ac198e5 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/QualityLevelServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/QualityLevelServiceImpl.java @@ -1,15 +1,15 @@ package cn.sourceplan.quality.service.impl; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.quality.domain.QualityLevel; +import cn.sourceplan.quality.mapper.QualityLevelMapper; +import cn.sourceplan.quality.service.IQualityLevelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.quality.mapper.QualityLevelMapper; -import cn.sourceplan.quality.domain.QualityLevel; -import cn.sourceplan.quality.service.IQualityLevelService; + +import java.util.List; /** * 质检等级Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReasonServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReasonServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReasonServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReasonServiceImpl.java index c57ccf3..7c49b58 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReasonServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReasonServiceImpl.java @@ -1,15 +1,15 @@ package cn.sourceplan.quality.service.impl; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.quality.domain.Reason; +import cn.sourceplan.quality.mapper.ReasonMapper; +import cn.sourceplan.quality.service.IReasonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.quality.mapper.ReasonMapper; -import cn.sourceplan.quality.domain.Reason; -import cn.sourceplan.quality.service.IReasonService; + +import java.util.List; /** * 质检原因Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReportQualityServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReportQualityServiceImpl.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReportQualityServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReportQualityServiceImpl.java index 5f4bc26..6494e6e 100644 --- a/yjh-mes/src/main/java/com/ruoyi/quality/service/impl/ReportQualityServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/quality/service/impl/ReportQualityServiceImpl.java @@ -1,28 +1,24 @@ package cn.sourceplan.quality.service.impl; +import cn.hutool.core.date.DateUtil; +import cn.sourceplan.barcode.mapper.MaterialSnMapper; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.quality.domain.ReportQuality; +import cn.sourceplan.quality.domain.ReportQualityEntry; +import cn.sourceplan.quality.domain.ReportQualityReason; +import cn.sourceplan.quality.mapper.ReportQualityEntryMapper; +import cn.sourceplan.quality.mapper.ReportQualityMapper; +import cn.sourceplan.quality.mapper.ReportQualityReasonMapper; +import cn.sourceplan.quality.service.IReportQualityService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.barcode.mapper.MaterialSnMapper; -import cn.sourceplan.common.core.domain.model.LoginUser; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.common.utils.SecurityUtils; -import cn.sourceplan.common.utils.StringUtils; -import cn.sourceplan.quality.domain.QualityLevel; -import cn.sourceplan.quality.domain.ReportQualityEntry; -import cn.sourceplan.quality.domain.ReportQualityReason; -import cn.sourceplan.quality.mapper.ReportQualityEntryMapper; -import cn.sourceplan.quality.mapper.ReportQualityReasonMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import cn.sourceplan.quality.mapper.ReportQualityMapper; -import cn.sourceplan.quality.domain.ReportQuality; -import cn.sourceplan.quality.service.IReportQualityService; - /** * 报工质检单Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/controller/SalOrderController.java b/yjh-mes/src/main/java/cn/sourceplan/sale/controller/SalOrderController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/sale/controller/SalOrderController.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/controller/SalOrderController.java index 72b8370..309c5ca 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/controller/SalOrderController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/controller/SalOrderController.java @@ -1,25 +1,19 @@ package cn.sourceplan.sale.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.sale.domain.SalOrder; import cn.sourceplan.sale.service.ISalOrderService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 销售订单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrder.java b/yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrder.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrder.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrder.java index 55979e8..d9c4b92 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrder.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrder.java @@ -1,16 +1,16 @@ package cn.sourceplan.sale.domain; -import java.util.List; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.util.Date; +import java.util.List; /** * 销售订单对象 sal_order diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrderEntry.java b/yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrderEntry.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrderEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrderEntry.java index 8ecd3fd..9e6d12c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/domain/SalOrderEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/domain/SalOrderEntry.java @@ -1,16 +1,16 @@ package cn.sourceplan.sale.domain; -import java.math.BigDecimal; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; /** * ${subTable.functionName}对象 sal_order_entry diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderEntryMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderEntryMapper.java index ff61e37..8064138 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderEntryMapper.java @@ -1,11 +1,10 @@ package cn.sourceplan.sale.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.sale.domain.SalOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; -import java.util.List; /** * @author jinzhong diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderMapper.java b/yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderMapper.java similarity index 92% rename from yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderMapper.java index e35c1ce..b2a3f11 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/mapper/SalOrderMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/mapper/SalOrderMapper.java @@ -1,13 +1,11 @@ package cn.sourceplan.sale.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.production.domain.Process; import cn.sourceplan.sale.domain.SalOrder; -import cn.sourceplan.sale.domain.SalOrderEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 销售订单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/service/ISalOrderService.java b/yjh-mes/src/main/java/cn/sourceplan/sale/service/ISalOrderService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/sale/service/ISalOrderService.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/service/ISalOrderService.java index 7a29f70..b64086c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/service/ISalOrderService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/service/ISalOrderService.java @@ -1,8 +1,9 @@ package cn.sourceplan.sale.service; -import java.util.List; import cn.sourceplan.sale.domain.SalOrder; +import java.util.List; + /** * 销售订单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/sale/service/impl/SalOrderServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/sale/service/impl/SalOrderServiceImpl.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/sale/service/impl/SalOrderServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/sale/service/impl/SalOrderServiceImpl.java index a1c0b75..a58aaf7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/sale/service/impl/SalOrderServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/sale/service/impl/SalOrderServiceImpl.java @@ -1,22 +1,20 @@ package cn.sourceplan.sale.service.impl; -import java.text.SimpleDateFormat; -import java.util.*; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.sale.domain.SalOrder; +import cn.sourceplan.sale.domain.SalOrderEntry; import cn.sourceplan.sale.mapper.SalOrderEntryMapper; +import cn.sourceplan.sale.mapper.SalOrderMapper; +import cn.sourceplan.sale.service.ISalOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - -import java.util.logging.SimpleFormatter; - -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.sale.domain.SalOrderEntry; -import cn.sourceplan.sale.mapper.SalOrderMapper; -import cn.sourceplan.sale.domain.SalOrder; -import cn.sourceplan.sale.service.ISalOrderService; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * 销售订单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/controller/MobileWorkController.java b/yjh-mes/src/main/java/cn/sourceplan/statement/controller/MobileWorkController.java similarity index 84% rename from yjh-mes/src/main/java/com/ruoyi/statement/controller/MobileWorkController.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/controller/MobileWorkController.java index f5579b8..ba4e388 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/controller/MobileWorkController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/controller/MobileWorkController.java @@ -1,20 +1,15 @@ package cn.sourceplan.statement.controller; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.core.page.TableDataInfo; -import cn.sourceplan.sale.domain.SalOrder; import cn.sourceplan.statement.service.MobileWorkService; -import cn.sourceplan.statement.service.PcIndexService; +import com.alibaba.fastjson2.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; -import java.util.List; /** * 移动端工作台Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/controller/PcIndexController.java b/yjh-mes/src/main/java/cn/sourceplan/statement/controller/PcIndexController.java similarity index 79% rename from yjh-mes/src/main/java/com/ruoyi/statement/controller/PcIndexController.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/controller/PcIndexController.java index bb0b73c..3df5e26 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/controller/PcIndexController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/controller/PcIndexController.java @@ -1,23 +1,16 @@ package cn.sourceplan.statement.controller; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.core.page.TableDataInfo; -import cn.sourceplan.common.enums.BusinessType; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.sale.domain.SalOrder; -import cn.sourceplan.sale.service.ISalOrderService; import cn.sourceplan.statement.service.PcIndexService; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.List; /** * 后台首页报表Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/mapper/MobileWorkMapper.java b/yjh-mes/src/main/java/cn/sourceplan/statement/mapper/MobileWorkMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/statement/mapper/MobileWorkMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/mapper/MobileWorkMapper.java index 156dcd8..23b1feb 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/mapper/MobileWorkMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/mapper/MobileWorkMapper.java @@ -4,8 +4,6 @@ import com.alibaba.fastjson2.JSONObject; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; -import java.util.Map; - /** * @author jinzhong */ diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/mapper/PcIndexMapper.java b/yjh-mes/src/main/java/cn/sourceplan/statement/mapper/PcIndexMapper.java similarity index 94% rename from yjh-mes/src/main/java/com/ruoyi/statement/mapper/PcIndexMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/mapper/PcIndexMapper.java index 29c7d4b..964204d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/mapper/PcIndexMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/mapper/PcIndexMapper.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; -import java.util.List; import java.util.Map; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/service/MobileWorkService.java b/yjh-mes/src/main/java/cn/sourceplan/statement/service/MobileWorkService.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/statement/service/MobileWorkService.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/service/MobileWorkService.java index c18fc5f..98b4b98 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/service/MobileWorkService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/service/MobileWorkService.java @@ -1,6 +1,5 @@ package cn.sourceplan.statement.service; -import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import javax.servlet.http.HttpServletRequest; diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/service/PcIndexService.java b/yjh-mes/src/main/java/cn/sourceplan/statement/service/PcIndexService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/statement/service/PcIndexService.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/service/PcIndexService.java diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/service/impl/MobileWorkServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/MobileWorkServiceImpl.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/statement/service/impl/MobileWorkServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/MobileWorkServiceImpl.java index 40d6522..1d026c7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/service/impl/MobileWorkServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/MobileWorkServiceImpl.java @@ -1,29 +1,16 @@ package cn.sourceplan.statement.service.impl; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.utils.SecurityUtils; import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.finance.service.IPayrollService; -import cn.sourceplan.production.domain.Report; -import cn.sourceplan.production.mapper.ReportMapper; -import cn.sourceplan.production.mapper.WorkOrderMapper; -import cn.sourceplan.quality.domain.ReportQuality; -import cn.sourceplan.quality.domain.ReportQualityEntry; -import cn.sourceplan.quality.domain.ReportQualityReason; -import cn.sourceplan.quality.service.IReportQualityService; import cn.sourceplan.statement.mapper.MobileWorkMapper; -import cn.sourceplan.statement.mapper.PcIndexMapper; import cn.sourceplan.statement.service.MobileWorkService; -import cn.sourceplan.statement.service.PcIndexService; +import com.alibaba.fastjson2.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; -import java.util.*; @Service public class MobileWorkServiceImpl implements MobileWorkService { diff --git a/yjh-mes/src/main/java/com/ruoyi/statement/service/impl/PcIndexServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/PcIndexServiceImpl.java similarity index 98% rename from yjh-mes/src/main/java/com/ruoyi/statement/service/impl/PcIndexServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/PcIndexServiceImpl.java index 4019ccc..4d499d7 100644 --- a/yjh-mes/src/main/java/com/ruoyi/statement/service/impl/PcIndexServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/statement/service/impl/PcIndexServiceImpl.java @@ -1,12 +1,7 @@ package cn.sourceplan.statement.service.impl; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.utils.MesDateUtil; -import cn.sourceplan.common.utils.SecurityUtils; -import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.production.domain.Report; import cn.sourceplan.production.mapper.ReportMapper; import cn.sourceplan.production.mapper.WorkOrderMapper; @@ -16,6 +11,9 @@ import cn.sourceplan.quality.domain.ReportQualityReason; import cn.sourceplan.quality.service.IReportQualityService; import cn.sourceplan.statement.mapper.PcIndexMapper; import cn.sourceplan.statement.service.PcIndexService; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/yjh-mes/src/main/java/com/ruoyi/system/controller/CarouselController.java b/yjh-mes/src/main/java/cn/sourceplan/system/controller/CarouselController.java similarity index 85% rename from yjh-mes/src/main/java/com/ruoyi/system/controller/CarouselController.java rename to yjh-mes/src/main/java/cn/sourceplan/system/controller/CarouselController.java index fc12868..c1087bd 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/controller/CarouselController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/controller/CarouselController.java @@ -1,25 +1,19 @@ package cn.sourceplan.system.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.system.domain.Carousel; import cn.sourceplan.system.service.ICarouselService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 轮播图Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/system/controller/MobileApiController.java b/yjh-mes/src/main/java/cn/sourceplan/system/controller/MobileApiController.java similarity index 89% rename from yjh-mes/src/main/java/com/ruoyi/system/controller/MobileApiController.java rename to yjh-mes/src/main/java/cn/sourceplan/system/controller/MobileApiController.java index aed12c1..f8e0899 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/controller/MobileApiController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/controller/MobileApiController.java @@ -2,15 +2,9 @@ package cn.sourceplan.system.controller; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; -import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.core.page.TableDataInfo; -import cn.sourceplan.common.enums.BusinessType; import cn.sourceplan.common.utils.SecurityUtils; -import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.equipment.domain.RepairOrder; import cn.sourceplan.equipment.service.IRepairOrderService; import cn.sourceplan.finance.domain.Payroll; @@ -19,13 +13,13 @@ import cn.sourceplan.production.domain.Report; import cn.sourceplan.production.domain.WorkOrder; import cn.sourceplan.production.service.IReportService; import cn.sourceplan.production.service.IWorkOrderService; -import cn.sourceplan.system.domain.Carousel; -import cn.sourceplan.system.service.ICarouselService; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.HashMap; import java.util.List; diff --git a/yjh-mes/src/main/java/com/ruoyi/system/domain/Carousel.java b/yjh-mes/src/main/java/cn/sourceplan/system/domain/Carousel.java similarity index 88% rename from yjh-mes/src/main/java/com/ruoyi/system/domain/Carousel.java rename to yjh-mes/src/main/java/cn/sourceplan/system/domain/Carousel.java index 74b444a..97f52ee 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/domain/Carousel.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/domain/Carousel.java @@ -1,13 +1,11 @@ package cn.sourceplan.system.domain; +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; /** * 轮播图对象 sys_carousel diff --git a/yjh-mes/src/main/java/com/ruoyi/system/mapper/CarouselMapper.java b/yjh-mes/src/main/java/cn/sourceplan/system/mapper/CarouselMapper.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/system/mapper/CarouselMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/system/mapper/CarouselMapper.java index 94b58d9..8b3f279 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/mapper/CarouselMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/mapper/CarouselMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.system.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.quality.domain.Reason; import cn.sourceplan.system.domain.Carousel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/system/service/ICarouselService.java b/yjh-mes/src/main/java/cn/sourceplan/system/service/ICarouselService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/system/service/ICarouselService.java rename to yjh-mes/src/main/java/cn/sourceplan/system/service/ICarouselService.java index 39703f8..e0301be 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/service/ICarouselService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/service/ICarouselService.java @@ -1,8 +1,9 @@ package cn.sourceplan.system.service; -import java.util.List; import cn.sourceplan.system.domain.Carousel; +import java.util.List; + /** * 轮播图Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/system/service/impl/CarouselServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/system/service/impl/CarouselServiceImpl.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/system/service/impl/CarouselServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/system/service/impl/CarouselServiceImpl.java index ab60a5a..1287e4b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/system/service/impl/CarouselServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/system/service/impl/CarouselServiceImpl.java @@ -1,16 +1,15 @@ package cn.sourceplan.system.service.impl; +import cn.sourceplan.system.domain.Carousel; +import cn.sourceplan.system.mapper.CarouselMapper; +import cn.sourceplan.system.service.ICarouselService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Arrays; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import cn.sourceplan.common.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import cn.sourceplan.system.mapper.CarouselMapper; -import cn.sourceplan.system.domain.Carousel; -import cn.sourceplan.system.service.ICarouselService; - /** * 轮播图Service业务层处理 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ManufactureIntoController.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ManufactureIntoController.java similarity index 87% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ManufactureIntoController.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ManufactureIntoController.java index a13511c..e522329 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ManufactureIntoController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ManufactureIntoController.java @@ -1,25 +1,19 @@ package cn.sourceplan.warehouse.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.warehouse.domain.ManufactureInto; import cn.sourceplan.warehouse.service.IManufactureIntoService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 完工入库单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ProPickController.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ProPickController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ProPickController.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ProPickController.java index d324f2c..e6f181a 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/ProPickController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/ProPickController.java @@ -1,27 +1,20 @@ package cn.sourceplan.warehouse.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import cn.sourceplan.warehouse.domain.ProPickEntry; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; -import cn.sourceplan.common.enums.BusinessType; -import cn.sourceplan.warehouse.domain.ProPick; -import cn.sourceplan.warehouse.service.IProPickService; -import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.common.core.page.TableDataInfo; +import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; +import cn.sourceplan.warehouse.domain.ProPick; +import cn.sourceplan.warehouse.domain.ProPickEntry; +import cn.sourceplan.warehouse.service.IProPickService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 生产领料单Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/RealTimeInventoryController.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/RealTimeInventoryController.java similarity index 82% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/controller/RealTimeInventoryController.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/RealTimeInventoryController.java index c4c4eb1..7d22ae2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/RealTimeInventoryController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/RealTimeInventoryController.java @@ -1,26 +1,20 @@ package cn.sourceplan.warehouse.controller; -import java.math.BigDecimal; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.warehouse.domain.RealTimeInventory; import cn.sourceplan.warehouse.service.IRealTimeInventoryService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.List; /** * 即时库存Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/WarehouseController.java similarity index 86% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/WarehouseController.java index 1ed0d73..a24ae15 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/controller/WarehouseController.java @@ -1,25 +1,19 @@ package cn.sourceplan.warehouse.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import cn.sourceplan.common.annotation.Log; import cn.sourceplan.common.core.controller.BaseController; import cn.sourceplan.common.core.domain.AjaxResult; +import cn.sourceplan.common.core.page.TableDataInfo; import cn.sourceplan.common.enums.BusinessType; +import cn.sourceplan.common.utils.poi.ExcelUtil; import cn.sourceplan.warehouse.domain.Warehouse; import cn.sourceplan.warehouse.service.IWarehouseService; -import cn.sourceplan.common.utils.poi.ExcelUtil; -import cn.sourceplan.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 仓库信息Controller diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureInto.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureInto.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureInto.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureInto.java index 17092d6..cd4930c 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureInto.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureInto.java @@ -1,18 +1,16 @@ package cn.sourceplan.warehouse.domain; -import java.util.List; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.util.Date; +import java.util.List; /** * 完工入库单对象 wm_manufacture_into diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureIntoEntry.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureIntoEntry.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureIntoEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureIntoEntry.java index d57baf9..f0c9adf 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ManufactureIntoEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ManufactureIntoEntry.java @@ -1,18 +1,16 @@ package cn.sourceplan.warehouse.domain; -import java.math.BigDecimal; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; /** * 生产入库单子表对象 wm_manufacture_into_entry diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPick.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPick.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPick.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPick.java index c74e571..c5377c8 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPick.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPick.java @@ -1,18 +1,16 @@ package cn.sourceplan.warehouse.domain; -import java.util.List; -import java.util.Date; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.util.Date; +import java.util.List; /** * 生产领料单对象 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPickEntry.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPickEntry.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPickEntry.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPickEntry.java index 88659e2..3a0e5df 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/ProPickEntry.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/ProPickEntry.java @@ -1,16 +1,14 @@ package cn.sourceplan.warehouse.domain; -import java.math.BigDecimal; - +import cn.sourceplan.common.annotation.Excel; +import cn.sourceplan.common.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import cn.sourceplan.common.annotation.Excel; -import cn.sourceplan.common.core.domain.BaseEntity; + +import java.math.BigDecimal; /** * 生产领料单子表对象 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/RealTimeInventory.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/RealTimeInventory.java similarity index 91% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/RealTimeInventory.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/RealTimeInventory.java index f6fa393..2a612ae 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/RealTimeInventory.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/RealTimeInventory.java @@ -1,12 +1,10 @@ package cn.sourceplan.warehouse.domain; -import java.math.BigDecimal; - -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; /** * 即时库存对象 real_time_inventory diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/Warehouse.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/Warehouse.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/domain/Warehouse.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/Warehouse.java index ab2ce3b..3f43d3d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/domain/Warehouse.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/domain/Warehouse.java @@ -1,13 +1,11 @@ package cn.sourceplan.warehouse.domain; -import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import cn.sourceplan.common.annotation.Excel; import cn.sourceplan.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.math.BigDecimal; /** * 仓库信息对象 wm_warehouse diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoEntryMapper.java similarity index 83% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoEntryMapper.java index 9c7e6f0..7360fdf 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoEntryMapper.java @@ -1,13 +1,10 @@ package cn.sourceplan.warehouse.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.sale.domain.SalOrderEntry; -import cn.sourceplan.warehouse.domain.ManufactureInto; import cn.sourceplan.warehouse.domain.ManufactureIntoEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; -import java.util.List; /** * 完工入库单Mapper接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoMapper.java similarity index 95% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoMapper.java index 8de69ee..2e8faae 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ManufactureIntoMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ManufactureIntoMapper.java @@ -1,12 +1,11 @@ package cn.sourceplan.warehouse.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.sourceplan.warehouse.domain.ManufactureInto; -import cn.sourceplan.warehouse.domain.ManufactureIntoEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 完工入库单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickEntryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickEntryMapper.java similarity index 81% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickEntryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickEntryMapper.java index 70208dd..41ec023 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickEntryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickEntryMapper.java @@ -1,13 +1,10 @@ package cn.sourceplan.warehouse.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.warehouse.domain.ManufactureIntoEntry; -import cn.sourceplan.warehouse.domain.ProPick; import cn.sourceplan.warehouse.domain.ProPickEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Collection; -import java.util.List; /** * 生产领料单Mapper接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickMapper.java similarity index 96% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickMapper.java index e99905e..ac95535 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/ProPickMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/ProPickMapper.java @@ -1,13 +1,12 @@ package cn.sourceplan.warehouse.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.warehouse.domain.ManufactureInto; import cn.sourceplan.warehouse.domain.ProPick; import cn.sourceplan.warehouse.domain.ProPickEntry; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 生产领料单Mapper接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/RealTimeInventoryMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/RealTimeInventoryMapper.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/RealTimeInventoryMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/RealTimeInventoryMapper.java index 0199bef..e5c44a0 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/RealTimeInventoryMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/RealTimeInventoryMapper.java @@ -1,9 +1,10 @@ package cn.sourceplan.warehouse.mapper; +import cn.sourceplan.warehouse.domain.RealTimeInventory; +import org.springframework.stereotype.Repository; + import java.math.BigDecimal; import java.util.List; -import cn.sourceplan.warehouse.domain.RealTimeInventory; -import org.springframework.stereotype.Repository; /** * 即时库存Mapper接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/WarehouseMapper.java similarity index 90% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/WarehouseMapper.java index 965dab0..44c1e4d 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/mapper/WarehouseMapper.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/mapper/WarehouseMapper.java @@ -1,10 +1,7 @@ package cn.sourceplan.warehouse.mapper; -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import cn.sourceplan.masterdata.domain.Bom; import cn.sourceplan.warehouse.domain.Warehouse; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; /** diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IManufactureIntoService.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IManufactureIntoService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/IManufactureIntoService.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IManufactureIntoService.java index 002b7b7..1f81439 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IManufactureIntoService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IManufactureIntoService.java @@ -1,8 +1,9 @@ package cn.sourceplan.warehouse.service; -import java.util.List; import cn.sourceplan.warehouse.domain.ManufactureInto; +import java.util.List; + /** * 完工入库单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IProPickService.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IProPickService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/IProPickService.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IProPickService.java index 63f2724..a376b60 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IProPickService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IProPickService.java @@ -1,9 +1,10 @@ package cn.sourceplan.warehouse.service; -import java.util.List; import cn.sourceplan.warehouse.domain.ProPick; import cn.sourceplan.warehouse.domain.ProPickEntry; +import java.util.List; + /** * 生产领料单Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IRealTimeInventoryService.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IRealTimeInventoryService.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/IRealTimeInventoryService.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IRealTimeInventoryService.java index 67827fe..a252267 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IRealTimeInventoryService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IRealTimeInventoryService.java @@ -1,8 +1,9 @@ package cn.sourceplan.warehouse.service; +import cn.sourceplan.warehouse.domain.RealTimeInventory; + import java.math.BigDecimal; import java.util.List; -import cn.sourceplan.warehouse.domain.RealTimeInventory; /** * 即时库存Service接口 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IWarehouseService.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IWarehouseService.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/IWarehouseService.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IWarehouseService.java index 684d4e0..09cd240 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/IWarehouseService.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/IWarehouseService.java @@ -1,10 +1,10 @@ package cn.sourceplan.warehouse.service; -import java.util.List; - import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.warehouse.domain.Warehouse; +import java.util.List; + /** * 仓库信息Service接口 * diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ManufactureIntoServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ManufactureIntoServiceImpl.java similarity index 97% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ManufactureIntoServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ManufactureIntoServiceImpl.java index 3b87bc4..ff71fa0 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ManufactureIntoServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ManufactureIntoServiceImpl.java @@ -1,27 +1,23 @@ package cn.sourceplan.warehouse.service.impl; -import java.util.HashMap; -import java.util.List; - import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.barcode.mapper.MaterialSnMapper; import cn.sourceplan.common.domain.SysCodeRule; import cn.sourceplan.common.service.ISysCodeRuleService; -import cn.sourceplan.common.utils.DateUtils; -import cn.sourceplan.sale.mapper.SalOrderEntryMapper; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.warehouse.domain.ManufactureInto; +import cn.sourceplan.warehouse.domain.ManufactureIntoEntry; import cn.sourceplan.warehouse.mapper.ManufactureIntoEntryMapper; +import cn.sourceplan.warehouse.mapper.ManufactureIntoMapper; +import cn.sourceplan.warehouse.service.IManufactureIntoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Map; - -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.warehouse.domain.ManufactureIntoEntry; -import cn.sourceplan.warehouse.mapper.ManufactureIntoMapper; -import cn.sourceplan.warehouse.domain.ManufactureInto; -import cn.sourceplan.warehouse.service.IManufactureIntoService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 完工入库单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ProPickServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ProPickServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ProPickServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ProPickServiceImpl.java index 4c47988..910330b 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/ProPickServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/ProPickServiceImpl.java @@ -1,25 +1,23 @@ package cn.sourceplan.warehouse.service.impl; -import java.util.HashMap; -import java.util.List; - import cn.hutool.core.date.DateUtil; import cn.sourceplan.barcode.mapper.MaterialSnMapper; import cn.sourceplan.common.domain.SysCodeRule; import cn.sourceplan.common.service.ISysCodeRuleService; -import cn.sourceplan.common.utils.DateUtils; +import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.warehouse.domain.ProPick; +import cn.sourceplan.warehouse.domain.ProPickEntry; import cn.sourceplan.warehouse.mapper.ProPickEntryMapper; +import cn.sourceplan.warehouse.mapper.ProPickMapper; +import cn.sourceplan.warehouse.service.IProPickService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Map; - -import cn.sourceplan.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import cn.sourceplan.warehouse.domain.ProPickEntry; -import cn.sourceplan.warehouse.mapper.ProPickMapper; -import cn.sourceplan.warehouse.domain.ProPick; -import cn.sourceplan.warehouse.service.IProPickService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 生产领料单Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/RealTimeInventoryServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/RealTimeInventoryServiceImpl.java similarity index 99% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/RealTimeInventoryServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/RealTimeInventoryServiceImpl.java index 149b291..a6c5a02 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/RealTimeInventoryServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/RealTimeInventoryServiceImpl.java @@ -1,12 +1,13 @@ package cn.sourceplan.warehouse.service.impl; +import cn.sourceplan.warehouse.domain.RealTimeInventory; +import cn.sourceplan.warehouse.mapper.RealTimeInventoryMapper; +import cn.sourceplan.warehouse.service.IRealTimeInventoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.math.BigDecimal; import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import cn.sourceplan.warehouse.mapper.RealTimeInventoryMapper; -import cn.sourceplan.warehouse.domain.RealTimeInventory; -import cn.sourceplan.warehouse.service.IRealTimeInventoryService; /** * 即时库存Service业务层处理 diff --git a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/WarehouseServiceImpl.java similarity index 100% rename from yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java rename to yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/WarehouseServiceImpl.java index a137634..f38dbd2 100644 --- a/yjh-mes/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java +++ b/yjh-mes/src/main/java/cn/sourceplan/warehouse/service/impl/WarehouseServiceImpl.java @@ -1,16 +1,16 @@ package cn.sourceplan.warehouse.service.impl; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.sourceplan.common.core.domain.AjaxResult; import cn.sourceplan.common.utils.SqlCheckUtil; import cn.sourceplan.common.utils.StringUtils; +import cn.sourceplan.warehouse.domain.Warehouse; +import cn.sourceplan.warehouse.mapper.WarehouseMapper; +import cn.sourceplan.warehouse.service.IWarehouseService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.sourceplan.warehouse.mapper.WarehouseMapper; -import cn.sourceplan.warehouse.domain.Warehouse; -import cn.sourceplan.warehouse.service.IWarehouseService; + +import java.util.List; /** * 仓库信息Service业务层处理