| | |
| | | "@babel/types": "^7.12.13" |
| | | } |
| | | }, |
| | | "@babel/helper-string-parser": { |
| | | "version": "7.27.1", |
| | | "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", |
| | | "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" |
| | | }, |
| | | "@babel/helper-validator-identifier": { |
| | | "version": "7.14.0", |
| | | "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.0.tgz?cache=0&sync_timestamp=1619727556616&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.0.tgz", |
| | |
| | | "postcss": "^7.0.0" |
| | | } |
| | | }, |
| | | "@jridgewell/sourcemap-codec": { |
| | | "version": "1.5.5", |
| | | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", |
| | | "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" |
| | | }, |
| | | "@juggle/resize-observer": { |
| | | "version": "3.4.0", |
| | | "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", |
| | |
| | | "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", |
| | | "dev": true |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "ssri": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "minipass": "^3.1.1" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | |
| | | "request": "^2.88.2", |
| | | "semver": "^6.1.0", |
| | | "strip-ansi": "^6.0.0" |
| | | } |
| | | }, |
| | | "@vue/compiler-core": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.22.tgz", |
| | | "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", |
| | | "requires": { |
| | | "@babel/parser": "^7.28.4", |
| | | "@vue/shared": "3.5.22", |
| | | "entities": "^4.5.0", |
| | | "estree-walker": "^2.0.2", |
| | | "source-map-js": "^1.2.1" |
| | | }, |
| | | "dependencies": { |
| | | "@babel/helper-validator-identifier": { |
| | | "version": "7.27.1", |
| | | "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", |
| | | "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" |
| | | }, |
| | | "@babel/parser": { |
| | | "version": "7.28.4", |
| | | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.4.tgz", |
| | | "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", |
| | | "requires": { |
| | | "@babel/types": "^7.28.4" |
| | | } |
| | | }, |
| | | "@babel/types": { |
| | | "version": "7.28.4", |
| | | "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.4.tgz", |
| | | "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", |
| | | "requires": { |
| | | "@babel/helper-string-parser": "^7.27.1", |
| | | "@babel/helper-validator-identifier": "^7.27.1" |
| | | } |
| | | }, |
| | | "entities": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", |
| | | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" |
| | | } |
| | | } |
| | | }, |
| | | "@vue/compiler-dom": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", |
| | | "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", |
| | | "requires": { |
| | | "@vue/compiler-core": "3.5.22", |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | }, |
| | | "@vue/compiler-sfc": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", |
| | | "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", |
| | | "requires": { |
| | | "@babel/parser": "^7.28.4", |
| | | "@vue/compiler-core": "3.5.22", |
| | | "@vue/compiler-dom": "3.5.22", |
| | | "@vue/compiler-ssr": "3.5.22", |
| | | "@vue/shared": "3.5.22", |
| | | "estree-walker": "^2.0.2", |
| | | "magic-string": "^0.30.19", |
| | | "postcss": "^8.5.6", |
| | | "source-map-js": "^1.2.1" |
| | | }, |
| | | "dependencies": { |
| | | "@babel/helper-validator-identifier": { |
| | | "version": "7.27.1", |
| | | "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", |
| | | "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" |
| | | }, |
| | | "@babel/parser": { |
| | | "version": "7.28.4", |
| | | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.4.tgz", |
| | | "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", |
| | | "requires": { |
| | | "@babel/types": "^7.28.4" |
| | | } |
| | | }, |
| | | "@babel/types": { |
| | | "version": "7.28.4", |
| | | "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.4.tgz", |
| | | "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", |
| | | "requires": { |
| | | "@babel/helper-string-parser": "^7.27.1", |
| | | "@babel/helper-validator-identifier": "^7.27.1" |
| | | } |
| | | }, |
| | | "nanoid": { |
| | | "version": "3.3.11", |
| | | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", |
| | | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" |
| | | }, |
| | | "postcss": { |
| | | "version": "8.5.6", |
| | | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", |
| | | "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", |
| | | "requires": { |
| | | "nanoid": "^3.3.11", |
| | | "picocolors": "^1.1.1", |
| | | "source-map-js": "^1.2.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "@vue/compiler-ssr": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", |
| | | "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", |
| | | "requires": { |
| | | "@vue/compiler-dom": "3.5.22", |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | }, |
| | | "@vue/component-compiler-utils": { |
| | |
| | | "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz", |
| | | "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", |
| | | "dev": true |
| | | }, |
| | | "@vue/reactivity": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.22.tgz", |
| | | "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", |
| | | "requires": { |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | }, |
| | | "@vue/runtime-core": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.22.tgz", |
| | | "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", |
| | | "requires": { |
| | | "@vue/reactivity": "3.5.22", |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | }, |
| | | "@vue/runtime-dom": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", |
| | | "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", |
| | | "requires": { |
| | | "@vue/reactivity": "3.5.22", |
| | | "@vue/runtime-core": "3.5.22", |
| | | "@vue/shared": "3.5.22", |
| | | "csstype": "^3.1.3" |
| | | } |
| | | }, |
| | | "@vue/server-renderer": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.22.tgz", |
| | | "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", |
| | | "requires": { |
| | | "@vue/compiler-ssr": "3.5.22", |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | }, |
| | | "@vue/shared": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.22.tgz", |
| | | "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==" |
| | | }, |
| | | "@vue/web-component-wrapper": { |
| | | "version": "1.3.0", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "csstype": { |
| | | "version": "3.1.3", |
| | | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", |
| | | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" |
| | | }, |
| | | "currently-unhandled": { |
| | | "version": "0.4.1", |
| | | "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", |
| | | "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", |
| | | "dev": true |
| | | }, |
| | | "estree-walker": { |
| | | "version": "2.0.2", |
| | | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "esutils": { |
| | | "version": "2.0.3", |
| | |
| | | "yallist": "^3.0.2" |
| | | } |
| | | }, |
| | | "magic-string": { |
| | | "version": "0.30.19", |
| | | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.19.tgz", |
| | | "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", |
| | | "requires": { |
| | | "@jridgewell/sourcemap-codec": "^1.5.5" |
| | | } |
| | | }, |
| | | "make-dir": { |
| | | "version": "3.1.0", |
| | | "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", |
| | | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", |
| | | "dev": true |
| | | }, |
| | | "picocolors": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", |
| | | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" |
| | | }, |
| | | "picomatch": { |
| | | "version": "2.2.3", |
| | |
| | | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", |
| | | "dev": true |
| | | }, |
| | | "source-map-js": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", |
| | | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" |
| | | }, |
| | | "source-map-resolve": { |
| | | "version": "0.5.3", |
| | | "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", |
| | |
| | | "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", |
| | | "dev": true |
| | | }, |
| | | "v-clipboard": { |
| | | "version": "3.0.0-next.1", |
| | | "resolved": "https://registry.npmmirror.com/v-clipboard/-/v-clipboard-3.0.0-next.1.tgz", |
| | | "integrity": "sha512-UvCnzetQMlVfk9yoiyew8ldGiCzeER5aYdmXXtZp8LC6rt2QXQS0AayEDn1K7rlXpd3M8d+JeYNUV+ZNgtaS4A==", |
| | | "requires": { |
| | | "vue": "^3.2.45" |
| | | }, |
| | | "dependencies": { |
| | | "vue": { |
| | | "version": "3.5.22", |
| | | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.22.tgz", |
| | | "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", |
| | | "requires": { |
| | | "@vue/compiler-dom": "3.5.22", |
| | | "@vue/compiler-sfc": "3.5.22", |
| | | "@vue/runtime-dom": "3.5.22", |
| | | "@vue/server-renderer": "3.5.22", |
| | | "@vue/shared": "3.5.22" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "v8-compile-cache": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", |
| | | "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | |
| | | "js-file-download": "^0.4.12", |
| | | "path": "^0.12.7", |
| | | "qrcodejs2": "0.0.2", |
| | | "v-clipboard": "^3.0.0-next.1", |
| | | "vue": "^2.6.11", |
| | | "vue-clipboard2": "^0.3.1", |
| | | "vue-cropper": "^0.6.5", |
| | |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkCustomer/create', data) |
| | | } |
| | | |
| | | export function importExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkCustomer/importExcel', data) |
| | | } |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkCustomer/updateById', data) |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | export function allList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkLine/list', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | |
| | | return request.post('/visitsAdmin/cloudService/business/jkLine/create', data) |
| | | } |
| | | |
| | | export function importExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkLine/importExcel', data) |
| | | } |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/jkLine/updateById', data) |
| | |
| | | }, |
| | | getCate () { |
| | | fetchList({ |
| | | model: {}, |
| | | model: {type:1}, |
| | | capacity: 1000, |
| | | page: 1 |
| | | }).then(res => { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | class="center-title" |
| | | :title="title" |
| | | width="500px" |
| | | top="30vh" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip-warn"><i class="el-icon-warning"></i>导å
¥è¯´æï¼<br> |
| | | 1.请å
ä¸è½½æä»¶æ¨¡æ¿ï¼å¹¶æç
§æ¨¡æ¿è¦å»å¡«åè¡¨æ ¼å
容;<br> |
| | | </p> |
| | | <el-form class="demo-form-inline" > |
| | | <el-form-item label="客æ·ä¿¡æ¯" required> |
| | | <div style="width: 100%;display: flex;align-items: center;"> |
| | | <el-button type="primary" @click="clickRef">ç¹å»ä¸ä¼ </el-button> |
| | | <el-button type="text" @click="exportTemplate">ç¹å»ä¸è½½æ¨¡ç.EXCEL</el-button> |
| | | </div> |
| | | <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" /> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { importExcel } from '@/api/business/jkCustomer' |
| | | export default { |
| | | extends: BaseOpera, |
| | | // eslint-disable-next-line vue/no-unused-components |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | importing:false, |
| | | fileName: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title) { |
| | | this.title = title |
| | | this.fileName = '' |
| | | this.visible = true |
| | | }, |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/jkCustomerTemplate.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | | }, |
| | | result (e) { |
| | | const data = new FormData() |
| | | data.append('file', e.target.files[0]) |
| | | importExcel(data) |
| | | .then(res => { |
| | | this.$message.success('导å
¥æå') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | | .catch(err => { |
| | | // this.$message.error(err) |
| | | this.fileName = '' |
| | | }) |
| | | .finally(() => { |
| | | this.$refs.fileExcel.value = null |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="50%" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请è¾å
¥å建人ç¼ç " v-trim/> |
| | | <el-form-item label="" prop="name"> |
| | | <span style="width: 100px;text-align: right;margin-right: 30px;">客æ·ç®ç ï¼</span> |
| | | <span>{{form.code}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´"></el-date-picker> |
| | | <el-form-item label="" prop="name"> |
| | | <span style="width: 100px;text-align: right;margin-right: 30px;">客æ·åç§°ï¼</span> |
| | | <span>{{form.name}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " v-trim/> |
| | | <el-form-item label="" prop="lineName"> |
| | | <span style="width: 100px;text-align: right;margin-right: 30px;">é货线路ï¼</span> |
| | | <span>{{form.lineName}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´"></el-date-picker> |
| | | <el-form-item label="" prop="categoryName"> |
| | | <span style="width: 100px;text-align: right;margin-right: 30px;">æå±ä¸»çº¿è·¯</span> |
| | | <span>{{form.categoryName}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" v-trim/> |
| | | <el-form-item label="" prop="location"> |
| | | <span style="width: 100px;text-align: right;margin-right: 30px;">å°åï¼ </span> |
| | | <span>{{form.location}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="info"> |
| | | <el-input v-model="form.info" placeholder="请è¾å
¥å¤æ³¨" v-trim/> |
| | | <el-button style="color: blue;margin-bottom: 10px;" v-clipboard:copy="form.location" v-clipboard:success="onCopy" v-clipboard:error="onError">ç¹å»å¤å¶å®¢æ·å°åï¼åå¾ç»çº¬åº¦å¨çº¿æåå¨</el-button> |
| | | <el-form-item label="ç»çº¬åº¦:" prop="locationInfo"> |
| | | <el-input v-model="form.locationInfo" placeholder="请è¾å
¥ç»çº¬åº¦" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥ç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå¨ä½ç½®" prop="lacation"> |
| | | <el-input v-model="form.lacation" placeholder="请è¾å
¥æå¨ä½ç½®" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»åº¦" prop="longitude"> |
| | | <el-input v-model="form.longitude" placeholder="请è¾å
¥ç»åº¦" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="维度" prop="latitude"> |
| | | <el-input v-model="form.latitude" placeholder="请è¾å
¥ç»´åº¦" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é
é卿" prop="weeks"> |
| | | <el-input v-model="form.weeks" placeholder="请è¾å
¥é
é卿" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é货路线ç¼ç ï¼å
³èjk_line)" prop="lineId"> |
| | | <el-input v-model="form.lineId" placeholder="请è¾å
¥é货路线ç¼ç ï¼å
³èjk_line)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æ£å¸¸ ç¦ç¨" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请è¾å
¥ç¶æ 0æ£å¸¸ ç¦ç¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | locationInfo: '', |
| | | name: '', |
| | | code: '', |
| | | lacation: '', |
| | | longitude: '', |
| | | latitude: '', |
| | | weeks: '', |
| | | lineId: '', |
| | | status: '', |
| | | sortnum: '' |
| | | location: '', |
| | | lineName: '', |
| | | categoryName: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | locationInfo: [{ required: true, message: '请è¾å
¥ç»çº¬åº¦ä¿¡æ¯' }] |
| | | } |
| | | } |
| | | }, |
| | |
| | | api: '/business/jkCustomer', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | onCopy () { |
| | | console.log('Text copied!'); |
| | | window.open('https://lbs.amap.com/tools/picker') |
| | | }, |
| | | onError () { |
| | | console.error('Failed to copy text'); |
| | | window.open('https://lbs.amap.com/tools/picker') |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | class="center-title" |
| | | :title="title" |
| | | width="500px" |
| | | top="30vh" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip-warn"><i class="el-icon-warning"></i>导å
¥è¯´æï¼<br> |
| | | 1.请å
ä¸è½½æä»¶æ¨¡æ¿ï¼å¹¶æç
§æ¨¡æ¿è¦å»å¡«åè¡¨æ ¼å
容;<br> |
| | | </p> |
| | | <el-form class="demo-form-inline" > |
| | | <el-form-item label="æ°è·¯ä¿¡æ¯" required> |
| | | <div style="width: 100%;display: flex;align-items: center;"> |
| | | <el-button type="primary" @click="clickRef">ç¹å»ä¸ä¼ </el-button> |
| | | <el-button type="text" @click="exportTemplate">ç¹å»ä¸è½½æ¨¡ç.EXCEL</el-button> |
| | | </div> |
| | | <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" /> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { importExcel } from '@/api/business/jkLine' |
| | | export default { |
| | | extends: BaseOpera, |
| | | // eslint-disable-next-line vue/no-unused-components |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | importing:false, |
| | | fileName: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title) { |
| | | this.title = title |
| | | this.fileName = '' |
| | | this.visible = true |
| | | }, |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/jkLineTemplate.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | | }, |
| | | result (e) { |
| | | const data = new FormData() |
| | | data.append('file', e.target.files[0]) |
| | | importExcel(data) |
| | | .then(res => { |
| | | this.$message.success('导å
¥æå') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | | .catch(err => { |
| | | // this.$message.error(err) |
| | | this.fileName = '' |
| | | }) |
| | | .finally(() => { |
| | | this.$refs.fileExcel.value = null |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="50%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请è¾å
¥å建人ç¼ç " v-trim/> |
| | | <el-form-item label="æå±ä¸»çº¿è·¯" prop="categoryId"> |
| | | <el-select v-model="form.categoryId" filterable placeholder="è¯·éæ©æå±ä¸»çº¿è·¯" > |
| | | <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="info"> |
| | | <el-input v-model="form.info" placeholder="请è¾å
¥å¤æ³¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-form-item label="线路åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="çç»ç¼ç ï¼å
³ècategoryï¼" prop="categoryId"> |
| | | <el-input v-model="form.categoryId" placeholder="请è¾å
¥çç»ç¼ç ï¼å
³ècategoryï¼" v-trim/> |
| | | <el-form-item label="é货车è¾" prop="carId"> |
| | | <el-select v-model="form.carId" filterable placeholder="è¯·éæ©é货车è¾" > |
| | | <el-option v-for="item in carsList" :key="item.id" :label="item.code" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå±è½¦è¾(å
³ècars)" prop="carId"> |
| | | <el-input v-model="form.carId" placeholder="请è¾å
¥æå±è½¦è¾(å
³ècars)" v-trim/> |
| | | <el-form-item label="客æ·é" prop="maxCustomer"> |
| | | <el-input type="number" v-model="form.maxCustomer" placeholder="请è¾å
¥æå¤§å®¢æ·é" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå¤§å®¢æ·é" prop="maxCustomer"> |
| | | <el-input v-model="form.maxCustomer" placeholder="请è¾å
¥æå¤§å®¢æ·é" v-trim/> |
| | | <el-form-item label="订åé" prop="maxOrder"> |
| | | <el-input type="number" v-model="form.maxOrder" placeholder="请è¾å
¥æå¤§è®¢åé" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå¤§è®¢åé" prop="maxOrder"> |
| | | <el-input v-model="form.maxOrder" placeholder="请è¾å
¥æå¤§è®¢åé" v-trim/> |
| | | <el-form-item label="卿" prop="weeks"> |
| | | <el-select v-model="form.weeks" filterable placeholder="è¯·éæ©é货车è¾" > |
| | | <el-option v-for="item in weeksList" :key="item" :label="item" :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æªç»å® 1å¨ä½ 2ååº" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请è¾å
¥ç¶æ 0æªç»å® 1å¨ä½ 2ååº" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-form-item label="åºå·" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥åºå·" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { fetchCateList } from '@/api/business/category' |
| | | import { allList } from '@/api/business/cars' |
| | | export default { |
| | | name: 'OperaJkLineWindow', |
| | | extends: BaseOpera, |
| | |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | weeks:null, |
| | | name: '', |
| | | code: '', |
| | | categoryId: '', |
| | | carId: '', |
| | | maxCustomer: '', |
| | |
| | | status: '', |
| | | sortnum: '' |
| | | }, |
| | | categoryList: [], |
| | | carsList: [], |
| | | weeksList: ['å¨ä¸','å¨äº','å¨ä¸','å¨å','å¨äº','å¨å
','卿¥'], |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥çº¿è·¯åç§°' }], |
| | | categoryId: [{ required: true, message: 'è¯·éæ©æå±ä¸»çº¿è·¯' }] |
| | | } |
| | | } |
| | | }, |
| | |
| | | api: '/business/jkLine', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.loadCategory() |
| | | this.loadCars() |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | loadCategory () { |
| | | fetchCateList({ |
| | | type: 4 |
| | | }).then(res => { |
| | | this.categoryList = res |
| | | }) |
| | | }, |
| | | loadCars () { |
| | | allList({ |
| | | type: 1//æ¥è¯¢å
¨é¨è½¦è¾ |
| | | }).then(res => { |
| | | this.carsList = res |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | import preventReClick from '@/directives/directive' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | |
| | | Vue.component('treeselect', Treeselect) |
| | | |
| | | Vue.use(preventReClick) |
| | |
| | | <TableLayout :permissions="['business:jkcustomer:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="主é®" prop="id"> |
| | | <el-input v-model="searchForm.id" placeholder="请è¾å
¥ä¸»é®" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="客æ·ç®ç " prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥å®¢æ·ç®ç " clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="searchForm.creator" placeholder="请è¾å
¥å建人ç¼ç " @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="客æ·åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å®¢æ·åç§°" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´" @change="search"/> |
| | | <el-form-item label="å°å" prop="location"> |
| | | <el-input v-model="searchForm.location" placeholder="请è¾å
¥å°å" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="é
é卿" prop="lineWeeks"> |
| | | <el-select v-model="searchForm.lineWeeks" clearable filterable placeholder="è¯·éæ©é
é卿" @change="search"> |
| | | <el-option v-for="item in weeksList" :key="item" :label="item" :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´" @change="search"/> |
| | | <el-form-item label="æå±ä¸»çº¿è·¯" prop="categoryId"> |
| | | <el-select v-model="searchForm.categoryId" clearable filterable placeholder="è¯·éæ©æå±ä¸»çº¿è·¯" @change="loadLines();search()"> |
| | | <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="info"> |
| | | <el-input v-model="searchForm.info" placeholder="请è¾å
¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå¨ä½ç½®" prop="lacation"> |
| | | <el-input v-model="searchForm.lacation" placeholder="请è¾å
¥æå¨ä½ç½®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»åº¦" prop="longitude"> |
| | | <el-input v-model="searchForm.longitude" placeholder="请è¾å
¥ç»åº¦" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="维度" prop="latitude"> |
| | | <el-input v-model="searchForm.latitude" placeholder="请è¾å
¥ç»´åº¦" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é
é卿" prop="weeks"> |
| | | <el-input v-model="searchForm.weeks" placeholder="请è¾å
¥é
é卿" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é货路线ç¼ç ï¼å
³èjk_line)" prop="lineId"> |
| | | <el-input v-model="searchForm.lineId" placeholder="请è¾å
¥é货路线ç¼ç ï¼å
³èjk_line)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æ£å¸¸ ç¦ç¨" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ 0æ£å¸¸ ç¦ç¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="searchForm.sortnum" placeholder="请è¾å
¥æåºç " @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="é货线路" prop="lineId"> |
| | | <el-select v-model="searchForm.lineId" clearable filterable placeholder="è¯·éæ©é货线路" @change="search"> |
| | | <el-option v-for="item in lineList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:jkcustomer:create', 'business:jkcustomer:delete']"> |
| | | <!-- |
| | | <li><el-button type="primary" @click="$refs.operaJkCustomerWindow.open('æ°å»ºäº¤æ§-客æ·ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:jkcustomer:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:jkcustomer:delete']">å é¤</el-button></li> |
| | | --> |
| | | <li><el-button icon="el-icon-upload" type="primary" @click="$refs.OperaJkCustomerImportWindowRef.open('客æ·å¯¼å
¥')" v-permissions="['business:jkcustomer:create']">客æ·å¯¼å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:jkcustomer:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="主é®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="info" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="lacation" label="æå¨ä½ç½®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="longitude" label="ç»åº¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="latitude" label="维度" min-width="100px"></el-table-column> |
| | | <el-table-column prop="weeks" label="é
é卿" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineId" label="é货路线ç¼ç ï¼å
³èjk_line)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0æ£å¸¸ ç¦ç¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="客æ·ç®ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="客æ·åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="location" label="å°å" min-width="200px" show-tooltip-when-overflow></el-table-column> |
| | | <el-table-column prop="locationInfo" label="ç»çº¬åº¦" min-width="150px"> </el-table-column> |
| | | <el-table-column prop="lineWeeks" label="é
é卿" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineName" label="é货线路" min-width="200px" show-tooltip-when-overflow></el-table-column> |
| | | <el-table-column prop="categoryName" label="æå±ä¸»çº¿è·¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortno" label="åºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:jkcustomer:update', 'business:jkcustomer:delete'])" |
| | | label="æä½" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaJkCustomerWindow.open('ç¼è¾äº¤æ§-客æ·ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:jkcustomer:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:jkcustomer:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.operaJkCustomerWindow.open('ç¼è¾å®¢æ·ä¿¡æ¯', row)" icon="el-icon-edit" v-permissions="['business:jkcustomer:update']">ç¼è¾</el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:jkcustomer:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaJkCustomerWindow ref="operaJkCustomerWindow" @success="handlePageChange"/> |
| | | <OperaJkCustomerImportWindow ref="OperaJkCustomerImportWindowRef" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaJkCustomerWindow from '@/components/business/OperaJkCustomerWindow' |
| | | import OperaJkCustomerImportWindow from '@/components/business/OperaJkCustomerImportWindow' |
| | | import { fetchCateList } from '@/api/business/category' |
| | | import { allList } from '@/api/business/jkLine' |
| | | export default { |
| | | name: 'JkCustomer', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaJkCustomerWindow }, |
| | | components: { TableLayout, Pagination, OperaJkCustomerWindow, OperaJkCustomerImportWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | categoryId: '', |
| | | name: '', |
| | | code: '', |
| | | lacation: '', |
| | | longitude: '', |
| | | latitude: '', |
| | | weeks: '', |
| | | location: '', |
| | | lineWeeks: '', |
| | | lineId: '', |
| | | status: '', |
| | | sortnum: '' |
| | | } |
| | | }, |
| | | categoryList: [], |
| | | lineList: [], |
| | | weeksList: ['å¨ä¸', 'å¨äº', 'å¨ä¸', 'å¨å', 'å¨äº', 'å¨å
', '卿¥'] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.loadCategory() |
| | | this.loadLines() |
| | | }, |
| | | methods: { |
| | | loadCategory () { |
| | | fetchCateList({ |
| | | type: 4 |
| | | }).then(res => { |
| | | this.categoryList = res |
| | | }) |
| | | }, |
| | | loadLines () { |
| | | this.searchForm.lineId ='' |
| | | allList({ |
| | | categoryId: this.searchForm.categoryId |
| | | }).then(res => { |
| | | this.lineList = res |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <TableLayout :permissions="['business:jkline:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="主é®" prop="id"> |
| | | <el-input v-model="searchForm.id" placeholder="请è¾å
¥ä¸»é®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="searchForm.creator" placeholder="请è¾å
¥å建人ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="info"> |
| | | <el-input v-model="searchForm.info" placeholder="请è¾å
¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="çç»ç¼ç ï¼å
³ècategoryï¼" prop="categoryId"> |
| | | <el-input v-model="searchForm.categoryId" placeholder="请è¾å
¥çç»ç¼ç ï¼å
³ècategoryï¼" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="æå±ä¸»çº¿è·¯" prop="categoryId"> |
| | | <el-select v-model="searchForm.categoryId" clearable filterable placeholder="è¯·éæ©æå±ä¸»çº¿è·¯" @change="search"> |
| | | <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå±è½¦è¾(å
³ècars)" prop="carId"> |
| | | <el-input v-model="searchForm.carId" placeholder="请è¾å
¥æå±è½¦è¾(å
³ècars)" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="è¿é车è¾" prop="carId"> |
| | | <el-input v-model="searchForm.carCode" placeholder="请è¾å
¥è¿é车è¾" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå¤§å®¢æ·é" prop="maxCustomer"> |
| | | <el-input v-model="searchForm.maxCustomer" placeholder="请è¾å
¥æå¤§å®¢æ·é" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå¤§è®¢åé" prop="maxOrder"> |
| | | <el-input v-model="searchForm.maxOrder" placeholder="请è¾å
¥æå¤§è®¢åé" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æªç»å® 1å¨ä½ 2ååº" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ 0æªç»å® 1å¨ä½ 2ååº" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="searchForm.sortnum" placeholder="请è¾å
¥æåºç " @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="åºå·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥åºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:jkline:create', 'business:jkline:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaJkLineWindow.open('æ°å»ºäº¤æ§-线路信æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:jkline:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:jkline:delete']">å é¤</el-button></li> |
| | | <li><el-button icon="el-icon-upload" type="primary" @click="$refs.OperaJkLineImportWindowRef.open('线路导å
¥')" v-permissions="['business:jkline:create']">线路导å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:jkline:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="主é®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="info" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="categoryId" label="çç»ç¼ç ï¼å
³ècategoryï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carId" label="æå±è½¦è¾(å
³ècars)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="maxCustomer" label="æå¤§å®¢æ·é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="maxOrder" label="æå¤§è®¢åé" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0æªç»å® 1å¨ä½ 2ååº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="200px" show-tooltip-when-overflow></el-table-column> |
| | | <el-table-column prop="categoryName" label="æå±ä¸»çº¿è·¯" min-width="140px"></el-table-column> |
| | | <el-table-column prop="carCode" label="æå±è½¦è¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="maxCustomer" label="客æ·é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="maxOrder" label="订åé" min-width="100px"></el-table-column> |
| | | <el-table-column prop="weeks" label="é
é卿" min-width="140px"></el-table-column> |
| | | <el-table-column prop="code" label="åºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:jkline:update', 'business:jkline:delete'])" |
| | | label="æä½" |
| | |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaJkLineWindow ref="operaJkLineWindow" @success="handlePageChange"/> |
| | | <OperaJkLineImportWindow ref="OperaJkLineImportWindowRef" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaJkLineWindow from '@/components/business/OperaJkLineWindow' |
| | | import OperaJkLineImportWindow from '@/components/business/OperaJkLineImportWindow' |
| | | import { fetchCateList } from '@/api/business/category' |
| | | export default { |
| | | name: 'JkLine', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaJkLineWindow }, |
| | | components: { TableLayout, Pagination, OperaJkLineWindow,OperaJkLineImportWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | name: '', |
| | | categoryId: '', |
| | | carId: '', |
| | | maxCustomer: '', |
| | | maxOrder: '', |
| | | status: '', |
| | | sortnum: '' |
| | | } |
| | | carCode: '', |
| | | code: '' |
| | | }, |
| | | categoryList: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.loadCategory() |
| | | }, |
| | | methods: { |
| | | loadCategory () { |
| | | fetchCateList({ type: 4 }).then(res => { |
| | | this.categoryList = res || [] |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | }, |
| | | getCate() { |
| | | fetchList({ |
| | | model: {}, |
| | | model: {type:1}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | |
| | | }, |
| | | methods: { |
| | | getList () { |
| | | fetchCateList({}).then(res => { |
| | | fetchCateList({type:1}).then(res => { |
| | | this.dataList = res || [] |
| | | }) |
| | | }, |
| | |
| | | public static final String LIQUID_LEVEL_UNIT ="LIQUID_LEVEL_UNIT" ; |
| | | public static final String OUT_HY_LOT_TOTAL ="OUT_HY_LOT_TOTAL" ; |
| | | public static final String BANNER_IMG ="BANNER_IMG" ; |
| | | public static final String GAODE_LOCATION_GEOAPI_URL = "GAODE_LOCATION_GEOAPI_URL"; |
| | | |
| | | public static boolean DEALING_HK_SYNCPRIVILEGE= false; |
| | | public static boolean DEALING_HK_SYNCDEVICE = false; |
| | |
| | | |
| | | public interface RedisKeys { |
| | | public static final String IMPORTING_CARS ="IMPORTING_CARS"; |
| | | public static final String CHECKING_JKCUSTOMER_LOCATION ="CHECKING_JKCUSTOMER_LOCATION"; |
| | | public static final String IMPORTING_JKCUSTOMER ="IMPORTING_JKCUSTOMER"; |
| | | public static final String IMPORTING_JKLINE ="IMPORTING_JKLINE"; |
| | | public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER"; |
| | | public static final String BIGSCREEN_UUID ="BIGSCREEN_UUID"; |
| | | public static final String IMPORTING_GAS ="IMPORTING_GAS"; |
| | |
| | | @ApiOperation("ã访客系ç»ã宿¶æ¥è¯¢äººåè®¾å¤ææç»æ") |
| | | @PostMapping("/timer/empower/syncEmpowerDetailData") |
| | | ApiResponse syncEmpowerDetailData(); |
| | | @ApiOperation("ã访客系ç»ãæ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯") |
| | | @PostMapping("/timer/jkCustomer/getCustomerLocationInfo") |
| | | ApiResponse getCustomerLocationInfo(); |
| | | @ApiOperation("ã访客系ç»ã宿¶æ¥è¯¢äººåè®¾å¤ææä¸è½½è¿åº¦") |
| | | @PostMapping("/timer/empower/syncEmpowerResultData") |
| | | ApiResponse syncEmpowerResultData(); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.core.wx.WXConstant; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.service.business.JkCustomerService; |
| | | import com.doumee.service.business.third.model.ApiResponse; |
| | | import com.doumee.service.system.SystemDictDataService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.mgt.DefaultSecurityManager; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Api(tags = "交æ§ä¸å¿å®¢æ·å®æ¶å¨") |
| | | @RestController |
| | | @RequestMapping("/timer/jkCustomer") |
| | | public class JkCustomerTimerController extends BaseController { |
| | | @Autowired |
| | | private JkCustomerService jkCustomerService; |
| | | |
| | | @ApiOperation("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯") |
| | | @PostMapping("/getCustomerLocationInfo") |
| | | public ApiResponse getCustomerLocationInfo() { |
| | | DefaultSecurityManager securityManager = new DefaultSecurityManager(); |
| | | SecurityUtils.setSecurityManager(securityManager); |
| | | jkCustomerService.checkNullLocation(); |
| | | return ApiResponse.success("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | # data-id: com.doumee.meeting.admin |
| | | discovery: |
| | | server-addr: http://192.168.0.212:8848 #é
ç½®Nacoså°å |
| | | namespace: dmvisit |
| | | namespace: wuhu_visit_dev |
| | | username: nacos |
| | | password: nacos |
| | | |
| | |
| | | spring: |
| | | profiles: |
| | | active: pro |
| | | active: dev |
| | | application: |
| | | name: visitsTimer |
| | | # å®å
¨é
ç½® |
| | |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.model.JkCustomer; |
| | | import com.doumee.dao.business.model.JkLine; |
| | | import com.doumee.service.business.JkCustomerService; |
| | | import com.doumee.service.business.third.model.ApiResponse; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @CloudRequiredPermission("business:jkcustomer:create") |
| | | public ApiResponse create(@RequestBody JkCustomer jkCustomer) { |
| | | public ApiResponse create(@RequestBody JkCustomer jkCustomer, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkCustomerService.create(jkCustomer)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @CloudRequiredPermission("business:jkcustomer:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | jkCustomerService.deleteById(id); |
| | | public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | jkCustomerService.deleteById(id,this.getLoginUser(token)); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @CloudRequiredPermission("business:jkcustomer:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | jkCustomerService.deleteByIdInBatch(idList); |
| | | jkCustomerService.deleteByIdInBatch(idList,this.getLoginUser(token)); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @CloudRequiredPermission("business:jkcustomer:update") |
| | | public ApiResponse updateById(@RequestBody JkCustomer jkCustomer) { |
| | | public ApiResponse updateById(@RequestBody JkCustomer jkCustomer, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | jkCustomer.setLoginUserInfo(this.getLoginUser(token)); |
| | | jkCustomerService.updateById(jkCustomer); |
| | | return ApiResponse.success(null); |
| | | } |
| | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @CloudRequiredPermission("business:jkcustomer:query") |
| | | public ApiResponse<PageData<JkCustomer>> findPage (@RequestBody PageWrap<JkCustomer> pageWrap) { |
| | | public ApiResponse<PageData<JkCustomer>> findPage (@RequestBody PageWrap<JkCustomer> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkCustomerService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @CloudRequiredPermission("business:jkcustomer:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<JkCustomer> pageWrap, HttpServletResponse response) { |
| | | public void exportExcel (@RequestBody PageWrap<JkCustomer> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ExcelExporter.build(JkCustomer.class).export(jkCustomerService.findPage(pageWrap).getRecords(), "交æ§-客æ·ä¿¡æ¯è¡¨", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @CloudRequiredPermission("business:jkcustomer:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkCustomerService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation(value = "客æ·ä¿¡æ¯å¯¼å
¥" ,notes = "客æ·ä¿¡æ¯å¯¼å
¥") |
| | | @PostMapping("/importExcel") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), |
| | | }) |
| | | @CloudRequiredPermission("business:cars:create") |
| | | public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | List<JkCustomer> list = jkCustomerService.importBatch(file,this.getLoginUser(token)); |
| | | return ApiResponse.success("导å
¥æå"); |
| | | } |
| | | } |
| | |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.model.Cars; |
| | | import com.doumee.dao.business.model.JkLine; |
| | | import com.doumee.service.business.JkLineService; |
| | | import com.doumee.service.business.third.model.ApiResponse; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @CloudRequiredPermission("business:jkline:create") |
| | | public ApiResponse create(@RequestBody JkLine jkLine) { |
| | | public ApiResponse create(@RequestBody JkLine jkLine, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | jkLine.setLoginUserInfo(this.getLoginUser(token)); |
| | | return ApiResponse.success(jkLineService.create(jkLine)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @CloudRequiredPermission("business:jkline:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | jkLineService.deleteById(id); |
| | | public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | jkLineService.deleteById(id,this.getLoginUser(token)); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @CloudRequiredPermission("business:jkline:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | jkLineService.deleteByIdInBatch(idList); |
| | | jkLineService.deleteByIdInBatch(idList,this.getLoginUser(token)); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @CloudRequiredPermission("business:jkline:update") |
| | | public ApiResponse updateById(@RequestBody JkLine jkLine) { |
| | | public ApiResponse updateById(@RequestBody JkLine jkLine, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | jkLine.setLoginUserInfo(this.getLoginUser(token)); |
| | | jkLineService.updateById(jkLine); |
| | | return ApiResponse.success(null); |
| | | } |
| | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @CloudRequiredPermission("business:jkline:query") |
| | | public ApiResponse<PageData<JkLine>> findPage (@RequestBody PageWrap<JkLine> pageWrap) { |
| | | public ApiResponse<PageData<JkLine>> findPage (@RequestBody PageWrap<JkLine> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkLineService.findPage(pageWrap)); |
| | | } |
| | | @ApiOperation("æ¥è¯¢å
¨é¨") |
| | | @PostMapping("/list") |
| | | @CloudRequiredPermission("business:jkline:query") |
| | | public ApiResponse<List<JkLine>> list (@RequestBody JkLine pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkLineService.findList(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @CloudRequiredPermission("business:jkline:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<JkLine> pageWrap, HttpServletResponse response) { |
| | | public void exportExcel (@RequestBody PageWrap<JkLine> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ExcelExporter.build(JkLine.class).export(jkLineService.findPage(pageWrap).getRecords(), "交æ§-线路信æ¯è¡¨", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @CloudRequiredPermission("business:jkline:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(jkLineService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation(value = "线路信æ¯å¯¼å
¥" ,notes = "线路信æ¯å¯¼å
¥") |
| | | @PostMapping("/importExcel") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), |
| | | }) |
| | | @CloudRequiredPermission("business:cars:create") |
| | | public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | List<JkLine> list = jkLineService.importBatch(file,this.getLoginUser(token)); |
| | | return ApiResponse.success("导å
¥æå"); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.request; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * å工信æ¯å¯¼å
¥è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Data |
| | | @ApiModel("线路客æ·ä¿¡æ¯å¯¼å
¥") |
| | | public class JkCustomerImport { |
| | | |
| | | |
| | | @ExcelColumn(name="客æ·ç®ç ",value = "code",index = 0) |
| | | private String code; |
| | | @ExcelColumn(name="客æ·åç§°",value = "name",index = 1) |
| | | private String name; |
| | | @ExcelColumn(name="线路",value = "lineName",index = 2) |
| | | private String lineName; |
| | | @ExcelColumn(name="åºå·",value = "sortno",index = 3) |
| | | private String sortno; |
| | | @ExcelColumn(name="å°å",value = "location",index = 4) |
| | | private String location; |
| | | |
| | | @ExcelColumn(name="ç»çº¬åº¦" , value = "locationInfo",index = 5) |
| | | private String locationInfo; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.request; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * å工信æ¯å¯¼å
¥è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Data |
| | | @ApiModel("线路信æ¯å¯¼å
¥") |
| | | public class JkLineImport { |
| | | |
| | | |
| | | @ExcelColumn(name="线路åç§°",value = "name",index = 0) |
| | | private String name; |
| | | @ExcelColumn(name="æå±ä¸»çº¿è·¯",value = "categoryName",index = 1) |
| | | private String categoryName; |
| | | @ExcelColumn(name="åºå·",value = "code",index = 2) |
| | | private String code; |
| | | @ExcelColumn(name="é货车è¾",value = "carCode",index = 3) |
| | | private String carCode; |
| | | |
| | | @ExcelColumn(name="客æ·é" , value = "maxCustomer" ,index = 4) |
| | | private String maxCustomer; |
| | | |
| | | @ExcelColumn(name="订åé" , value = "maxOrder",index = 5) |
| | | private String maxOrder; |
| | | @ExcelColumn(name="卿" , value = "weeks",index = 6) |
| | | private String weeks; |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.JkCustomer; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/09/28 09:01 |
| | | */ |
| | | public interface JkCustomerMapper extends BaseMapper<JkCustomer> { |
| | | public interface JkCustomerMapper extends MPJBaseMapper<JkCustomer> { |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.JkLine; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/09/28 09:01 |
| | | */ |
| | | public interface JkLineMapper extends BaseMapper<JkLine> { |
| | | public interface JkLineMapper extends MPJBaseMapper<JkLine> { |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "æå¨ä½ç½®") |
| | | @ExcelColumn(name="æå¨ä½ç½®") |
| | | private String lacation; |
| | | private String location; |
| | | |
| | | @ApiModelProperty(value = "ç»åº¦", example = "1") |
| | | @ExcelColumn(name="ç»åº¦") |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.service.business.third.model.LoginUserModel; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | public class JkCustomer extends LoginUserModel { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | //@ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | //@ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | //@ExcelColumn(name="å建æ¶é´")IMPORTING_JKCUSTOMER |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | //@ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | //@ExcelColumn(name="æ´æ°æ¶é´")IMPORTING_JKCUSTOMER |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | //@ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | //@ExcelColumn(name="夿³¨") |
| | | private String info; |
| | | |
| | | @ApiModelProperty(value = "åç§°", example = "1") |
| | | @ExcelColumn(name="åç§°") |
| | | private Integer name; |
| | | @ExcelColumn(name="客æ·åç§°",index = 2,width = 10) |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "ç¼ç ", example = "1") |
| | | @ExcelColumn(name="ç¼ç ") |
| | | private Integer code; |
| | | @ExcelColumn(name="客æ·ç®ç ",index = 1,width = 10) |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "æå¨ä½ç½®") |
| | | @ExcelColumn(name="æå¨ä½ç½®") |
| | | private String lacation; |
| | | @ExcelColumn(name="å°å",index = 3,width = 10) |
| | | private String location; |
| | | |
| | | @ApiModelProperty(value = "ç»åº¦", example = "1") |
| | | @ExcelColumn(name="ç»åº¦") |
| | | //@ExcelColumn(name="ç»åº¦") |
| | | private BigDecimal longitude; |
| | | |
| | | @ApiModelProperty(value = "维度", example = "1") |
| | | @ExcelColumn(name="维度") |
| | | //@ExcelColumn(name="维度") |
| | | private BigDecimal latitude; |
| | | |
| | | @ApiModelProperty(value = "é
é卿") |
| | | @ExcelColumn(name="é
é卿") |
| | | private String weeks; |
| | | @ApiModelProperty(value = "客æ·åºå·") |
| | | @ExcelColumn(name="åºå·",index = 8,width = 10) |
| | | private String sortno; |
| | | |
| | | @ApiModelProperty(value = "ç»çº¬åº¦", example = "1") |
| | | @ExcelColumn(name="ç»çº¬åº¦",index = 3,width = 10) |
| | | @TableField(exist = false) |
| | | private String locationInfo; |
| | | @ApiModelProperty(value = "é货路线ç¼ç ï¼å
³èjk_line)", example = "1") |
| | | @ExcelColumn(name="é货路线ç¼ç ï¼å
³èjk_line)") |
| | | //@ExcelColumn(name="é货路线ç¼ç ï¼å
³èjk_line)") |
| | | private Integer lineId; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0æ£å¸¸ ç¦ç¨", example = "1") |
| | | @ExcelColumn(name="ç¶æ 0æ£å¸¸ ç¦ç¨") |
| | | //@ExcelColumn(name="ç¶æ 0æ£å¸¸ ç¦ç¨") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "æåºç ", example = "1") |
| | | @ExcelColumn(name="æåºç ") |
| | | //@ExcelColumn(name="æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "æå±ä¸»çº¿è·¯", example = "1") |
| | | @ExcelColumn(name="æå±ä¸»çº¿è·¯",index = 7,width = 10) |
| | | @TableField(exist = false) |
| | | private String categoryName; |
| | | @ApiModelProperty(value = "æå±ä¸»çº¿è·¯ç¼ç ", example = "1") |
| | | @TableField(exist = false) |
| | | private Integer categoryId; |
| | | @ApiModelProperty(value = "线路", example = "1") |
| | | @ExcelColumn(name="é货线路",index = 6,width = 10) |
| | | @TableField(exist = false) |
| | | private String lineName; |
| | | @ApiModelProperty(value = "é
é卿", example = "1") |
| | | @ExcelColumn(name="é
é卿",index = 5,width = 10) |
| | | @TableField(exist = false) |
| | | private String lineWeeks; |
| | | @ApiModelProperty(value = "æ¯å¦æ°å¢ï¼ 0å¦ 1æ¯", example = "1") |
| | | @TableField(exist = false) |
| | | private int isnew; |
| | | } |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.service.business.third.model.LoginUserModel; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | public class JkLine extends LoginUserModel { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | //@ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | //@ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | //@ExcelColumn(name="å建æ¶é´") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | //@ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | //@ExcelColumn(name="æ´æ°æ¶é´") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | //@ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | //@ExcelColumn(name="夿³¨") |
| | | private String info; |
| | | @ApiModelProperty(value = "åºå·") |
| | | @ExcelColumn(name="åºå·",index = 7,width = 10) |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "åç§°", example = "1") |
| | | @ExcelColumn(name="åç§°") |
| | | private Integer name; |
| | | @ExcelColumn(name="åç§°",index = 1,width = 10) |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "çç»ç¼ç ï¼å
³ècategoryï¼", example = "1") |
| | | @ExcelColumn(name="çç»ç¼ç ï¼å
³ècategoryï¼") |
| | | //@ExcelColumn(name="çç»ç¼ç ï¼å
³ècategoryï¼") |
| | | private Integer categoryId; |
| | | |
| | | @ApiModelProperty(value = "æå±è½¦è¾(å
³ècars)", example = "1") |
| | | @ExcelColumn(name="æå±è½¦è¾(å
³ècars)") |
| | | //@ExcelColumn(name="æå±è½¦è¾(å
³ècars)") |
| | | private Integer carId; |
| | | |
| | | @ApiModelProperty(value = "æå¤§å®¢æ·é", example = "1") |
| | | @ExcelColumn(name="æå¤§å®¢æ·é") |
| | | @ExcelColumn(name="æå¤§å®¢æ·é",index = 5,width = 10) |
| | | private Integer maxCustomer; |
| | | |
| | | @ApiModelProperty(value = "æå¤§è®¢åé", example = "1") |
| | | @ExcelColumn(name="æå¤§è®¢åé") |
| | | @ExcelColumn(name="æå¤§è®¢åé",index = 6,width = 10) |
| | | private Integer maxOrder; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0æªç»å® 1å¨ä½ 2ååº", example = "1") |
| | | @ExcelColumn(name="ç¶æ 0æªç»å® 1å¨ä½ 2ååº") |
| | | //@ExcelColumn(name="ç¶æ 0æªç»å® 1å¨ä½ 2ååº") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "æåºç ", example = "1") |
| | | @ExcelColumn(name="æåºç ") |
| | | // @ExcelColumn(name="æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "é
é卿") |
| | | @ExcelColumn(name="é
é卿",index = 3,width = 10) |
| | | private String weeks; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦æ°å¢ï¼ 0å¦ 1æ¯", example = "1") |
| | | @TableField(exist = false) |
| | | private int isnew; |
| | | @ApiModelProperty(value = "é货车è¾", example = "1") |
| | | @ExcelColumn(name="é货车è¾",index = 4,width = 10) |
| | | @TableField(exist = false) |
| | | private String carCode; |
| | | @ApiModelProperty(value = "æå±ä¸»çº¿è·¯", example = "1") |
| | | @ExcelColumn(name="æå±ä¸»çº¿è·¯",index = 2,width = 10) |
| | | @TableField(exist = false) |
| | | private String categoryName; |
| | | |
| | | |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.dao.business.model.JkCustomer; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | void deleteById(Integer id,LoginUserInfo user); |
| | | |
| | | /** |
| | | * å é¤ |
| | |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | void deleteByIdInBatch(List<Integer> ids,LoginUserInfo user); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | |
| | | * @return long |
| | | */ |
| | | long count(JkCustomer jkCustomer); |
| | | |
| | | List<JkCustomer> importBatch(MultipartFile file, LoginUserInfo loginUser); |
| | | |
| | | void checkNullLocation(); |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.dao.business.model.Cars; |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.dao.business.model.JkLine; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | void deleteById(Integer id, LoginUserInfo user); |
| | | |
| | | /** |
| | | * å é¤ |
| | |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | |
| | | * @return long |
| | | */ |
| | | long count(JkLine jkLine); |
| | | |
| | | List<JkLine> importBatch(MultipartFile file, LoginUserInfo loginUser); |
| | | } |
| | |
| | | && Constants.equalsInteger(Constants.ZERO,cars.getType())){ |
| | | return this.getGwCar(); |
| | | } |
| | | cars.setType(null); |
| | | QueryWrapper<Cars> wrapper = new QueryWrapper<>(cars); |
| | | wrapper.lambda().eq(Cars::getIsdeleted,Constants.ZERO); |
| | | return carsMapper.selectList(wrapper); |
| | |
| | | queryWrapper.lambda().ge(JkCabinet::getHaertTime, Utils.Date.getStart(pageWrap.getModel().getHaertTime())); |
| | | queryWrapper.lambda().le(JkCabinet::getHaertTime, Utils.Date.getEnd(pageWrap.getModel().getHaertTime())); |
| | | } |
| | | if (pageWrap.getModel().getLacation() != null) { |
| | | queryWrapper.lambda().eq(JkCabinet::getLacation, pageWrap.getModel().getLacation()); |
| | | if (pageWrap.getModel().getLocation() != null) { |
| | | queryWrapper.lambda().eq(JkCabinet::getLocation, pageWrap.getModel().getLocation()); |
| | | } |
| | | if (pageWrap.getModel().getLongitude() != null) { |
| | | queryWrapper.lambda().eq(JkCabinet::getLongitude, pageWrap.getModel().getLongitude()); |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.dao.admin.request.JkCustomerImport; |
| | | import com.doumee.dao.admin.request.JkLineImport; |
| | | import com.doumee.dao.business.JkLineMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.JkCustomerMapper; |
| | | import com.doumee.dao.business.model.JkCustomer; |
| | | import com.doumee.service.business.JkCustomerService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * @date 2025/09/28 09:01 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class JkCustomerServiceImpl implements JkCustomerService { |
| | | |
| | | @Autowired |
| | | private JkCustomerMapper jkCustomerMapper; |
| | | @Autowired |
| | | private JkLineMapper jkLineMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Override |
| | | public Integer create(JkCustomer jkCustomer) { |
| | | jkCustomerMapper.insert(jkCustomer); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | jkCustomerMapper.deleteById(id); |
| | | public void deleteById(Integer id,LoginUserInfo user) { |
| | | jkCustomerMapper.update(null,new UpdateWrapper<JkCustomer>().lambda() |
| | | .set(JkCustomer::getIsdeleted,Constants.ONE) |
| | | .set(JkCustomer::getEditor,user.getId()) |
| | | .set(JkCustomer::getEditDate,new Date()) |
| | | .eq(JkCustomer::getId,id) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | public void deleteByIdInBatch(List<Integer> ids,LoginUserInfo user) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | jkCustomerMapper.deleteBatchIds(ids); |
| | | jkCustomerMapper.update(null,new UpdateWrapper<JkCustomer>().lambda() |
| | | .set(JkCustomer::getIsdeleted,Constants.ONE) |
| | | .set(JkCustomer::getEditor,user.getId()) |
| | | .set(JkCustomer::getEditDate,new Date()) |
| | | .in(JkCustomer::getId,ids) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(JkCustomer jkCustomer) { |
| | | jkCustomerMapper.updateById(jkCustomer); |
| | | if(jkCustomer.getId() == null |
| | | ||jkCustomer.getLocationInfo() ==null ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | String[] strs = jkCustomer.getLocationInfo().split(","); |
| | | jkCustomer.setLongitude(getDecimalByVal(strs[0]));//ç»åº¦ |
| | | jkCustomer.setLatitude(strs.length>1?getDecimalByVal(strs[1]):null);//纬度 |
| | | if(jkCustomer.getLatitude() == null || jkCustomer.getLongitude() ==null){ |
| | | //éæå¯¹åºç°ï¼æ æç»çº¬åº¦ä¸ç»´æ¤ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | |
| | | jkCustomerMapper.update(null,new UpdateWrapper<JkCustomer>().lambda() |
| | | .set(JkCustomer::getLatitude,jkCustomer.getLatitude()) |
| | | .set(JkCustomer::getLongitude,jkCustomer.getLongitude()) |
| | | .set(JkCustomer::getEditor,jkCustomer.getLoginUserInfo().getId()) |
| | | .set(JkCustomer::getEditDate,new Date()) |
| | | .eq(JkCustomer::getId,jkCustomer.getId()) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public PageData<JkCustomer> findPage(PageWrap<JkCustomer> pageWrap) { |
| | | IPage<JkCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<JkCustomer> queryWrapper = new QueryWrapper<>(); |
| | | MPJLambdaWrapper<JkCustomer> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | pageWrap.getModel().setIsdeleted(Constants.ZERO); |
| | | queryWrapper.selectAll(JkCustomer.class ) |
| | | .selectAs(JkLine::getName,JkCustomer::getLineName) |
| | | .selectAs(JkLine::getWeeks,JkCustomer::getLineWeeks) |
| | | .selectAs(Category::getId,JkCustomer::getCategoryId) |
| | | .selectAs(Category::getName,JkCustomer::getCategoryName) |
| | | .leftJoin(JkLine.class,JkLine::getId,JkCustomer::getLineId ) |
| | | .leftJoin(Category.class,Category::getId,JkLine::getCategoryId ); |
| | | queryWrapper.eq( pageWrap.getModel().getCategoryId()!=null,JkLine::getCategoryId, pageWrap.getModel().getCategoryId()); |
| | | queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getLineWeeks()),JkLine::getWeeks, pageWrap.getModel().getLineWeeks()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCategoryName()),Category::getName, pageWrap.getModel().getCategoryName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getLineName()),JkLine::getName, pageWrap.getModel().getLineName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCategoryName()),Category::getName, pageWrap.getModel().getCategoryName()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.eq(JkCustomer::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getCreator, pageWrap.getModel().getCreator()); |
| | | queryWrapper.eq(JkCustomer::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(JkCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(JkCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.ge(JkCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.le(JkCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getEditor, pageWrap.getModel().getEditor()); |
| | | queryWrapper.eq(JkCustomer::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(JkCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(JkCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.ge(JkCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.le(JkCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | queryWrapper.eq(JkCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getInfo() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getInfo, pageWrap.getModel().getInfo()); |
| | | queryWrapper.eq(JkCustomer::getInfo, pageWrap.getModel().getInfo()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getName, pageWrap.getModel().getName()); |
| | | queryWrapper.like(JkCustomer::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getCode, pageWrap.getModel().getCode()); |
| | | queryWrapper.like(JkCustomer::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getLacation() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getLacation, pageWrap.getModel().getLacation()); |
| | | if (pageWrap.getModel().getLocation() != null) { |
| | | queryWrapper.like(JkCustomer::getLocation, pageWrap.getModel().getLocation()); |
| | | } |
| | | if (pageWrap.getModel().getLongitude() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getLongitude, pageWrap.getModel().getLongitude()); |
| | | queryWrapper.eq(JkCustomer::getLongitude, pageWrap.getModel().getLongitude()); |
| | | } |
| | | if (pageWrap.getModel().getLatitude() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getLatitude, pageWrap.getModel().getLatitude()); |
| | | queryWrapper.eq(JkCustomer::getLatitude, pageWrap.getModel().getLatitude()); |
| | | } |
| | | if (pageWrap.getModel().getWeeks() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getWeeks, pageWrap.getModel().getWeeks()); |
| | | if (pageWrap.getModel().getSortno() != null) { |
| | | queryWrapper.eq(JkCustomer::getSortno, pageWrap.getModel().getSortno()); |
| | | } |
| | | if (pageWrap.getModel().getLineId() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getLineId, pageWrap.getModel().getLineId()); |
| | | queryWrapper.eq(JkCustomer::getLineId, pageWrap.getModel().getLineId()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(JkCustomer::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getSortnum() != null) { |
| | | queryWrapper.lambda().eq(JkCustomer::getSortnum, pageWrap.getModel().getSortnum()); |
| | | queryWrapper.eq(JkCustomer::getSortnum, pageWrap.getModel().getSortnum()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | |
| | | queryWrapper.orderByAsc(JkCustomer::getCode); |
| | | IPage<JkCustomer> result = jkCustomerMapper.selectJoinPage(page, JkCustomer.class,queryWrapper); |
| | | if(result.getRecords()!=null && result.getRecords().size()>0){ |
| | | for(JkCustomer model :result.getRecords()){ |
| | | if(model.getLongitude()!=null && model.getLatitude()!=null){ |
| | | model.setLocationInfo(model.getLongitude().setScale(6, RoundingMode.HALF_UP).doubleValue() |
| | | +","+model.getLatitude().setScale(6, RoundingMode.HALF_UP).doubleValue()); |
| | | } |
| | | } |
| | | } |
| | | return PageData.from(jkCustomerMapper.selectPage(page, queryWrapper)); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | @Override |
| | | public void checkNullLocation() { |
| | | |
| | | log.error("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯===============å¼å§"); |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.CHECKING_JKCUSTOMER_LOCATION); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ä¸æ¬¡ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.CHECKING_JKCUSTOMER_LOCATION,true); |
| | | try { |
| | | LambdaQueryWrapper<JkCustomer> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.isNotNull(JkCustomer::getLocation); |
| | | queryWrapper.and(wrapper ->{ |
| | | wrapper.isNull(JkCustomer::getLatitude) |
| | | .or().isNull(JkCustomer::getLongitude); }); |
| | | //æ¥è¯¢å
¨é¨æå°åï¼ä½æ¯æ²¡æç»çº¬åº¦ç客æ·ä¿¡æ¯ |
| | | List<JkCustomer> list = jkCustomerMapper.selectList(queryWrapper); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | String url = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.GAODE_LOCATION_GEOAPI_URL).getCode(); |
| | | for(JkCustomer c : list){ |
| | | try { |
| | | String result = HttpsUtil.get(url.replace("${param}",c.getLocation()),true); |
| | | JSONObject json = JSONObject.parseObject(result); |
| | | if(json!=null |
| | | && json.getInteger("status")!=null |
| | | && json.getInteger("status") ==1 |
| | | && json.getJSONArray("geocodes")!=null |
| | | && json.getJSONArray("geocodes").size()>0 |
| | | && json.getJSONArray("geocodes").getJSONObject(0)!=null |
| | | && json.getJSONArray("geocodes").getJSONObject(0).getString("location")!=null){ |
| | | //è¯·æ±æå |
| | | String[] strs =json.getJSONArray("geocodes").getJSONObject(0).getString("location").split(","); |
| | | c.setLongitude(getDecimalByVal(strs[0]));//ç»åº¦ |
| | | c.setLatitude(strs.length>1?getDecimalByVal(strs[1]):null);//纬度 |
| | | if(c.getLatitude() != null && c.getLongitude() !=null){ |
| | | //éæå¯¹åºç°ï¼æ æç»çº¬åº¦ä¸ç»´æ¤ |
| | | jkCustomerMapper.update(null,new UpdateWrapper<JkCustomer>().lambda() |
| | | .set(JkCustomer::getLatitude,c.getLatitude()) |
| | | .set(JkCustomer::getLongitude,c.getLongitude()) |
| | | .set(JkCustomer::getEditDate,new Date()) |
| | | .eq(JkCustomer::getId,c.getId()) |
| | | ); |
| | | } |
| | | }else{ |
| | | log.error("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯=====è·å失败=========="+c.getName()+"-"+c.getLocation()); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯=====失败=========="+c.getName()+"-"+c.getLocation()); |
| | | } |
| | | |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯===============",e.getMessage()); |
| | | }finally { |
| | | redisTemplate.delete(Constants.RedisKeys.CHECKING_JKCUSTOMER_LOCATION); |
| | | } |
| | | log.error("æ´æ°äº¤æ§ä¸å¿å®¢æ·ç»çº¬åº¦ä¿¡æ¯===============ç»æ"); |
| | | |
| | | } |
| | | @Override |
| | | public long count(JkCustomer jkCustomer) { |
| | | QueryWrapper<JkCustomer> wrapper = new QueryWrapper<>(jkCustomer); |
| | | return jkCustomerMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public List<JkCustomer> importBatch(MultipartFile file, LoginUserInfo loginUserInfo){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_JKCUSTOMER); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_JKCUSTOMER,true); |
| | | try { |
| | | ExcelImporter ie = null; |
| | | List<JkCustomerImport> dataList =null; |
| | | try { |
| | | ie = new ExcelImporter(file,1,0); |
| | | dataList = ie.getDataList(JkCustomerImport.class,null); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(dataList == null || dataList.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | //å½åææçº¿è·¯ |
| | | List<JkLine> lineList = jkLineMapper.selectJoinList(JkLine.class,new MPJLambdaWrapper<JkLine>() |
| | | .selectAll(JkLine.class) |
| | | .eq(JkLine::getIsdeleted,Constants.ZERO) |
| | | ); |
| | | List<JkCustomer> allList = jkCustomerMapper.selectJoinList(JkCustomer.class,new MPJLambdaWrapper<JkCustomer>() |
| | | .selectAll(JkCustomer.class) |
| | | .eq(JkCustomer::getIsdeleted,Constants.ZERO) |
| | | ); |
| | | |
| | | List<JkCustomer> newList = new ArrayList<>(); |
| | | List<JkCustomer> updateList = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | JkCustomerImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getName()) |
| | | &&StringUtils.isBlank(model.getCode()) |
| | | &&StringUtils.isBlank(model.getLocation()) |
| | | &&StringUtils.isBlank(model.getSortno()) |
| | | &&StringUtils.isBlank(model.getLocationInfo()) |
| | | &&StringUtils.isBlank(model.getLineName()) ){ |
| | | continue; |
| | | } |
| | | checkModelParam(model,newList,updateList,i,loginUserInfo,allList,lineList ); |
| | | } |
| | | if((newList == null || newList.size() ==0) && updateList.size() == 0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æææ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | if(newList.size()>0){ |
| | | jkCustomerMapper.insert(newList); |
| | | } |
| | | if(updateList.size()>0){ |
| | | for (JkCustomer c : updateList){ |
| | | jkCustomerMapper.updateById(c); |
| | | } |
| | | } |
| | | newList.addAll(updateList); |
| | | return newList; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_JKCUSTOMER); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | private JkCustomer checkModelParam(JkCustomerImport model, List<JkCustomer> newList |
| | | , List<JkCustomer> updateList |
| | | ,int index |
| | | ,LoginUserInfo loginUserInfo |
| | | ,List<JkCustomer> allList |
| | | ,List<JkLine> lineList ) { |
| | | if(StringUtils.isBlank(model.getName()) |
| | | ||StringUtils.isBlank(model.getCode()) |
| | | ||StringUtils.isBlank(model.getLocation()) ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡å®¢æ·ä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | for(JkCustomer param: newList){ |
| | | if(StringUtils.isNotBlank(model.getCode())&&StringUtils.isNotBlank(param.getCode())) { |
| | | if (StringUtils.equals(model.getCode(), param.getCode())) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡å®¢æ·ç®ç ã" + model.getName() + "ãéå¤åºç°ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | } |
| | | } |
| | | JkLine line = findLineFromListByName(model.getLineName(),lineList); |
| | | if(line == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡çº¿è·¯ã" + model.getLineName() + "ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | |
| | | JkCustomer tModel = findModelFromList(model.getCode(),allList); |
| | | if(tModel == null){ |
| | | tModel = new JkCustomer(); |
| | | tModel.setCreator(loginUserInfo.getId()); |
| | | tModel.setCreateDate(new Date()); |
| | | tModel.setIsnew(Constants.ONE); |
| | | newList.add(tModel); |
| | | }else{ |
| | | tModel.setIsnew(Constants.ZERO); |
| | | updateList.add(tModel); |
| | | } |
| | | tModel.setName(model.getName()); |
| | | tModel.setCode(model.getCode()); |
| | | tModel.setLocation(model.getLocation()); |
| | | tModel.setSortno(model.getSortno()); |
| | | tModel.setLineId(line.getId()); |
| | | if(StringUtils.isNotBlank(model.getLocationInfo())){ |
| | | String[] strs = model.getLocationInfo().split(","); |
| | | tModel.setLongitude(getDecimalByVal(strs[0]));//ç»åº¦ |
| | | tModel.setLatitude(strs.length>1?getDecimalByVal(strs[1]):null);//纬度 |
| | | } |
| | | if(tModel.getLatitude() == null || tModel.getLongitude() ==null){ |
| | | //éæå¯¹åºç°ï¼æ æç»çº¬åº¦ä¸ç»´æ¤ |
| | | tModel.setLongitude(null); |
| | | tModel.setLatitude(null); |
| | | } |
| | | tModel.setEditDate(new Date()); |
| | | tModel.setEditor(loginUserInfo.getId()); |
| | | tModel.setIsdeleted(Constants.ZERO); |
| | | return tModel; |
| | | } |
| | | |
| | | private BigDecimal getDecimalByVal(String val) { |
| | | try { |
| | | return new BigDecimal(val); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Company findCompanyFromList(String companyName, List<Company> companyList) { |
| | | if(companyList !=null){ |
| | | for(Company company : companyList){ |
| | | if(StringUtils.equals(companyName,company.getCompanyNamePath())){ |
| | | return company; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private JkCustomer findModelFromList(String code, List<JkCustomer> list) { |
| | | if(list !=null){ |
| | | for(JkCustomer model : list){ |
| | | if(StringUtils.equals(code,model.getCode())){ |
| | | return model; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private JkLine findLineFromListByName(String name, List<JkLine> list) { |
| | | if(list !=null){ |
| | | for(JkLine model : list){ |
| | | if(StringUtils.equals(name,model.getName())){ |
| | | return model; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.ScientificNotationTUtil; |
| | | import com.doumee.dao.admin.request.CarsImport; |
| | | import com.doumee.dao.admin.request.JkLineImport; |
| | | import com.doumee.dao.business.CarsMapper; |
| | | import com.doumee.dao.business.CategoryMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.JkLineMapper; |
| | | import com.doumee.dao.business.model.JkLine; |
| | | import com.doumee.service.business.JkLineService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | public class JkLineServiceImpl implements JkLineService { |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Autowired |
| | | private JkLineMapper jkLineMapper; |
| | | @Autowired |
| | | private CategoryMapper categoryMapper; |
| | | @Autowired |
| | | private CarsMapper carsMapper; |
| | | |
| | | @Override |
| | | public Integer create(JkLine jkLine) { |
| | | if(jkLineMapper.selectCount(new QueryWrapper<JkLine>().lambda() |
| | | .eq(JkLine::getIsdeleted,Constants.ZERO) |
| | | .eq(JkLine::getName,jkLine.getName()) )>0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼çº¿è·¯åç§°å·²åå¨ï¼è¯·è¿åå·æ°é¡µé¢æ¥çï¼"); |
| | | } |
| | | if(categoryMapper.selectOne(new QueryWrapper<Category>().lambda() |
| | | .eq(Category::getId,jkLine.getCategoryId()) |
| | | .eq(Category::getType,Constants.FOUR) |
| | | .eq(Category::getIsdeleted,Constants.ZERO)) ==null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼æå±ä¸»çº¿è·¯ä¸åå¨ï¼è¯·è¿åå·æ°é¡µé¢æ¥çï¼"); |
| | | } |
| | | jkLine.setStatus(Constants.formatIntegerNum(jkLine.getStatus())); |
| | | jkLine.setIsdeleted(Constants.ZERO); |
| | | jkLine.setCreator(jkLine.getLoginUserInfo().getId()); |
| | | jkLine.setCreateDate(new Date()); |
| | | jkLine.setEditDate(jkLine.getCreateDate()); |
| | | jkLine.setEditor(jkLine.getCreator()); |
| | | jkLineMapper.insert(jkLine); |
| | | return jkLine.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | jkLineMapper.deleteById(id); |
| | | public void deleteById(Integer id, LoginUserInfo user) { |
| | | jkLineMapper.update(null,new UpdateWrapper<JkLine>().lambda() |
| | | .set(JkLine::getIsdeleted,Constants.ONE) |
| | | .set(JkLine::getEditor,user.getId()) |
| | | .set(JkLine::getEditDate,new Date()) |
| | | .eq(JkLine::getId,id) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | jkLineMapper.deleteBatchIds(ids); |
| | | jkLineMapper.update(null,new UpdateWrapper<JkLine>().lambda() |
| | | .set(JkLine::getIsdeleted,Constants.ONE) |
| | | .set(JkLine::getEditor,user.getId()) |
| | | .set(JkLine::getEditDate,new Date()) |
| | | .in(JkLine::getId,ids) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(JkLine jkLine) { |
| | | if(jkLineMapper.selectCount(new QueryWrapper<JkLine>().lambda() |
| | | .ne(JkLine::getId,jkLine.getId()) |
| | | .eq(JkLine::getIsdeleted,Constants.ZERO) |
| | | .eq(JkLine::getName,jkLine.getName()) )>0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼çº¿è·¯åç§°å·²åå¨ï¼è¯·è¿åå·æ°é¡µé¢æ¥çï¼"); |
| | | } |
| | | if(categoryMapper.selectOne(new QueryWrapper<Category>().lambda() |
| | | .eq(Category::getId,jkLine.getCategoryId()) |
| | | .eq(Category::getType,Constants.FOUR) |
| | | .eq(Category::getIsdeleted,Constants.ZERO)) ==null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼æå±ä¸»çº¿è·¯ä¸åå¨ï¼è¯·è¿åå·æ°é¡µé¢æ¥çï¼"); |
| | | } |
| | | jkLine.setEditor(jkLine.getLoginUserInfo().getId()); |
| | | jkLine.setEditDate(new Date()); |
| | | jkLineMapper.updateById(jkLine); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<JkLine> findList(JkLine jkLine) { |
| | | jkLine.setIsdeleted(Constants.ZERO); |
| | | QueryWrapper<JkLine> wrapper = new QueryWrapper<>(jkLine); |
| | | wrapper.lambda().orderByAsc(JkLine::getCode); |
| | | return jkLineMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<JkLine> findPage(PageWrap<JkLine> pageWrap) { |
| | | IPage<JkLine> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<JkLine> queryWrapper = new QueryWrapper<>(); |
| | | MPJLambdaWrapper<JkLine> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | pageWrap.getModel().setIsdeleted(Constants.ZERO); |
| | | queryWrapper.selectAll(JkLine.class ) |
| | | .selectAs(Cars::getCode,JkLine::getCarCode) |
| | | .selectAs(Category::getName,JkLine::getCategoryName) |
| | | .leftJoin(Category.class,Category::getId,JkLine::getCategoryId ) |
| | | .leftJoin(Cars.class,Cars::getId,JkLine::getCarId ); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCarCode()),Cars::getCode, pageWrap.getModel().getCarCode()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCategoryName()),Category::getName, pageWrap.getModel().getCategoryName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),JkLine::getCode, pageWrap.getModel().getCode()); |
| | | queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getWeeks()),JkLine::getWeeks, pageWrap.getModel().getWeeks()); |
| | | |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.eq(JkLine::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getCreator, pageWrap.getModel().getCreator()); |
| | | queryWrapper.eq(JkLine::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(JkLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(JkLine::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.ge(JkLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.le(JkLine::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getEditor, pageWrap.getModel().getEditor()); |
| | | queryWrapper.eq(JkLine::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(JkLine::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(JkLine::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.ge(JkLine::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.le(JkLine::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | queryWrapper.eq(JkLine::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getInfo() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getInfo, pageWrap.getModel().getInfo()); |
| | | queryWrapper.eq(JkLine::getInfo, pageWrap.getModel().getInfo()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getName, pageWrap.getModel().getName()); |
| | | queryWrapper.like(JkLine::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getCategoryId() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getCategoryId, pageWrap.getModel().getCategoryId()); |
| | | queryWrapper.eq(JkLine::getCategoryId, pageWrap.getModel().getCategoryId()); |
| | | } |
| | | if (pageWrap.getModel().getCarId() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getCarId, pageWrap.getModel().getCarId()); |
| | | queryWrapper.eq(JkLine::getCarId, pageWrap.getModel().getCarId()); |
| | | } |
| | | if (pageWrap.getModel().getMaxCustomer() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getMaxCustomer, pageWrap.getModel().getMaxCustomer()); |
| | | queryWrapper.eq(JkLine::getMaxCustomer, pageWrap.getModel().getMaxCustomer()); |
| | | } |
| | | if (pageWrap.getModel().getMaxOrder() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getMaxOrder, pageWrap.getModel().getMaxOrder()); |
| | | queryWrapper.eq(JkLine::getMaxOrder, pageWrap.getModel().getMaxOrder()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(JkLine::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getSortnum() != null) { |
| | | queryWrapper.lambda().eq(JkLine::getSortnum, pageWrap.getModel().getSortnum()); |
| | | queryWrapper.eq(JkLine::getSortnum, pageWrap.getModel().getSortnum()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(jkLineMapper.selectPage(page, queryWrapper)); |
| | | queryWrapper.orderByAsc(JkLine::getCode); |
| | | IPage<JkLine> result = jkLineMapper.selectJoinPage(page, JkLine.class,queryWrapper); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | @Override |
| | |
| | | QueryWrapper<JkLine> wrapper = new QueryWrapper<>(jkLine); |
| | | return jkLineMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public List<JkLine> importBatch(MultipartFile file, LoginUserInfo loginUserInfo){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_JKLINE); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_JKLINE,true); |
| | | try { |
| | | ExcelImporter ie = null; |
| | | List<JkLineImport> dataList =null; |
| | | try { |
| | | ie = new ExcelImporter(file,1,0); |
| | | dataList = ie.getDataList(JkLineImport.class,null); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(dataList == null || dataList.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | //å½åææçº¿è·¯ |
| | | List<JkLine> allList = jkLineMapper.selectJoinList(JkLine.class,new MPJLambdaWrapper<JkLine>() |
| | | .selectAll(JkLine.class) |
| | | .eq(JkLine::getIsdeleted,Constants.ZERO) |
| | | ); |
| | | //ææä¸»çº¿è·¯ |
| | | List<Category> categoryList = categoryMapper.selectJoinList(Category.class,new MPJLambdaWrapper<Category>() |
| | | .selectAll(Category.class) |
| | | .eq(Category::getIsdeleted,Constants.ZERO) |
| | | .eq(Category::getType,Constants.FOUR) |
| | | ); |
| | | //ææç©æµè½¦è½¦è¾ |
| | | List<Cars> cars = carsMapper.selectJoinList(Cars.class,new MPJLambdaWrapper<Cars>() |
| | | .selectAll(Cars.class) |
| | | .eq(Cars::getIsdeleted,Constants.ZERO) |
| | | // .eq(Cars::getType,Constants.ONE) |
| | | ); |
| | | |
| | | |
| | | List<JkLine> newList = new ArrayList<>(); |
| | | List<JkLine> updateList = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | JkLineImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getName()) |
| | | &&StringUtils.isBlank(model.getCategoryName()) |
| | | &&StringUtils.isBlank(model.getCarCode()) |
| | | &&StringUtils.isBlank(model.getWeeks()) |
| | | &&StringUtils.isBlank(model.getCode()) |
| | | &&StringUtils.isBlank(model.getMaxCustomer()) |
| | | &&StringUtils.isBlank(model.getMaxOrder()) ){ |
| | | continue; |
| | | } |
| | | checkModelParam(model,newList,updateList,i,loginUserInfo,allList,categoryList,cars); |
| | | } |
| | | if((newList == null || newList.size() ==0) && updateList.size() == 0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æææ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | if(newList.size()>0){ |
| | | jkLineMapper.insert(newList); |
| | | } |
| | | if(updateList.size()>0){ |
| | | for (JkLine c : updateList){ |
| | | jkLineMapper.updateById(c); |
| | | } |
| | | } |
| | | newList.addAll(updateList); |
| | | return newList; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_JKLINE); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | private JkLine checkModelParam(JkLineImport model, List<JkLine> newList |
| | | , List<JkLine> updateList |
| | | ,int index |
| | | ,LoginUserInfo loginUserInfo |
| | | ,List<JkLine> allList |
| | | ,List<Category> categoryList |
| | | , List<Cars> carsList) { |
| | | if(StringUtils.isBlank(model.getName()) |
| | | ||StringUtils.isBlank(model.getCategoryName()) ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡çº¿è·¯ä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | for(JkLine param: newList){ |
| | | if(StringUtils.isNotBlank(model.getName())&&StringUtils.isNotBlank(param.getName())) { |
| | | if (StringUtils.equals(model.getName(), param.getName())) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡çº¿è·¯åç§°ã" + model.getName() + "ãéå¤åºç°ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | } |
| | | } |
| | | Category cate = findCategoryFromListByName(model.getCategoryName(),categoryList); |
| | | if(cate == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡æå±ä¸»çº¿è·¯ã" + model.getCategoryName() + "ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | Cars car = findCarFromListByName(model.getCarCode(),carsList); |
| | | if(car == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡é车车è¾ã" + model.getCarCode() + "ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | JkLine line = findModelFromList(model.getName(),allList); |
| | | if(line == null){ |
| | | line = new JkLine(); |
| | | line.setCreator(loginUserInfo.getId()); |
| | | line.setCreateDate(new Date()); |
| | | line.setIsnew(Constants.ONE); |
| | | newList.add(line); |
| | | }else{ |
| | | line.setIsnew(Constants.ZERO); |
| | | updateList.add(line); |
| | | } |
| | | line.setName(model.getName()); |
| | | line.setCode(model.getCode()); |
| | | line.setCategoryId(cate.getId()); |
| | | line.setCarId(car.getId()); |
| | | line.setWeeks(model.getWeeks()); |
| | | line.setMaxCustomer(getIntegerByVal(model.getMaxCustomer())); |
| | | line.setMaxOrder(getIntegerByVal(model.getMaxOrder())); |
| | | |
| | | line.setEditDate(new Date()); |
| | | line.setEditor(loginUserInfo.getId()); |
| | | line.setIsdeleted(Constants.ZERO); |
| | | return line; |
| | | } |
| | | |
| | | private Integer getIntegerByVal(String maxCustomer) { |
| | | try { |
| | | return Integer.parseInt(maxCustomer); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Company findCompanyFromList(String companyName, List<Company> companyList) { |
| | | if(companyList !=null){ |
| | | for(Company company : companyList){ |
| | | if(StringUtils.equals(companyName,company.getCompanyNamePath())){ |
| | | return company; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private JkLine findModelFromList(String name, List<JkLine> list) { |
| | | if(list !=null){ |
| | | for(JkLine model : list){ |
| | | if(StringUtils.equals(name,model.getName())){ |
| | | return model; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private Category findCategoryFromListByName(String name, List<Category> list) { |
| | | if(list !=null){ |
| | | for(Category model : list){ |
| | | if(StringUtils.equals(name,model.getName())){ |
| | | return model; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private Cars findCarFromListByName(String name, List<Cars> list) { |
| | | if(list !=null){ |
| | | for(Cars model : list){ |
| | | if(StringUtils.equals(name,model.getCode())){ |
| | | return model; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |