cqpCow 1 rok pred
rodič
commit
cde8429b3c

+ 87 - 81
.idea/php.xml

@@ -2,98 +2,104 @@
 <project version="4">
   <component name="PhpIncludePathManager">
     <include_path>
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
-      <path value="$PROJECT_DIR$/vendor/symfony/process" />
-      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
-      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
+      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
+      <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
+      <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
       <path value="$PROJECT_DIR$/vendor/symfony/translation" />
-      <path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
-      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
       <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
-      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
-      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
+      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
+      <path value="$PROJECT_DIR$/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+      <path value="$PROJECT_DIR$/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
+      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/laravel/framework" />
+      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
+      <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
+      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
+      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
+      <path value="$PROJECT_DIR$/vendor/league/flysystem" />
+      <path value="$PROJECT_DIR$/vendor/league/commonmark" />
+      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
+      <path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
+      <path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
+      <path value="$PROJECT_DIR$/vendor/opis/closure" />
+      <path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
+      <path value="$PROJECT_DIR$/vendor/facade/ignition" />
+      <path value="$PROJECT_DIR$/vendor/psr/log" />
+      <path value="$PROJECT_DIR$/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/vendor/filp/whoops" />
+      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/composer" />
       <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
-      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
-      <path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
+      <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-message" />
+      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/vendor/ezyang/htmlpurifier" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-factory" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-client" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
       <path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
       <path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
-      <path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
-      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
-      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
-      <path value="$PROJECT_DIR$/vendor/composer" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-color" />
+      <path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
+      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
+      <path value="$PROJECT_DIR$/vendor/phpoffice/phpspreadsheet" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
       <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
       <path value="$PROJECT_DIR$/vendor/sebastian/type" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
+      <path value="$PROJECT_DIR$/vendor/maennchen/zipstream-php" />
       <path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
-      <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
-      <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
-      <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
-      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-color" />
-      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
-      <path value="$PROJECT_DIR$/vendor/psr/container" />
-      <path value="$PROJECT_DIR$/vendor/psr/log" />
-      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/markbaker/matrix" />
+      <path value="$PROJECT_DIR$/vendor/markbaker/complex" />
       <path value="$PROJECT_DIR$/vendor/psy/psysh" />
-      <path value="$PROJECT_DIR$/vendor/filp/whoops" />
-      <path value="$PROJECT_DIR$/vendor/opis/closure" />
-      <path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
       <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
-      <path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
-      <path value="$PROJECT_DIR$/vendor/facade/ignition" />
-      <path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
-      <path value="$PROJECT_DIR$/vendor/league/commonmark" />
-      <path value="$PROJECT_DIR$/vendor/league/flysystem" />
-      <path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
-      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
-      <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
-      <path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
-      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
-      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
-      <path value="$PROJECT_DIR$/vendor/laravel/framework" />
-      <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
-      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
-      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/php-enum" />
       <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
-      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
-      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
-      <path value="$PROJECT_DIR$/vendor/symfony/console" />
-      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
-      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
-      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
-      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
-      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
-      <path value="$PROJECT_DIR$/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
+      <path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
+      <path value="$PROJECT_DIR$/vendor/maatwebsite/excel" />
     </include_path>
   </component>
   <component name="PhpProjectSharedConfiguration" php_language_level="7.2" />

+ 649 - 107
.idea/workspace.xml

@@ -1,11 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="b5852db3-28ab-419d-82cf-b6c0f6b99397" name="变更" comment="">
+    <list default="true" id="176ce5b1-6b6f-444a-bf9c-bbc11ffdb486" name="变更" comment="1">
+      <change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Api/TechnologyController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Api/TechnologyController.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Service/TechnologyService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/TechnologyService.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/CheckForMaintenanceMode.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/CheckForMaintenanceMode.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/CheckLogin.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/CheckLogin.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/CheckToken.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/CheckToken.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/RedirectIfAuthenticated.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/RedirectIfAuthenticated.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/RequestLog.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/RequestLog.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/TrimStrings.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/TrimStrings.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/TrustProxies.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/TrustProxies.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Middleware/VerifyCsrfToken.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Middleware/VerifyCsrfToken.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Model/PurchaseOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Model/PurchaseOrder.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Service/CheckService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/CheckService.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Service/EmployeeService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/EmployeeService.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Service/PurchaseOrderService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/PurchaseOrderService.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Service/ReturnExchangeOrderService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/ReturnExchangeOrderService.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -19,103 +32,118 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
+  <component name="GitSEFilterConfiguration">
+    <file-type-list>
+      <filtered-out-file-type name="LOCAL_BRANCH" />
+      <filtered-out-file-type name="REMOTE_BRANCH" />
+      <filtered-out-file-type name="TAG" />
+      <filtered-out-file-type name="COMMIT_BY_MESSAGE" />
+    </file-type-list>
+  </component>
   <component name="PhpWorkspaceProjectConfiguration">
     <include_path>
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
-      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
-      <path value="$PROJECT_DIR$/vendor/symfony/process" />
-      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
-      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
+      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
+      <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
+      <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
       <path value="$PROJECT_DIR$/vendor/symfony/translation" />
-      <path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
-      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
       <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
-      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
-      <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
+      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
+      <path value="$PROJECT_DIR$/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+      <path value="$PROJECT_DIR$/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
+      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/laravel/framework" />
+      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
+      <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
+      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
+      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
+      <path value="$PROJECT_DIR$/vendor/league/flysystem" />
+      <path value="$PROJECT_DIR$/vendor/league/commonmark" />
+      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
+      <path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
+      <path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
+      <path value="$PROJECT_DIR$/vendor/opis/closure" />
+      <path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
+      <path value="$PROJECT_DIR$/vendor/facade/ignition" />
+      <path value="$PROJECT_DIR$/vendor/psr/log" />
+      <path value="$PROJECT_DIR$/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/vendor/filp/whoops" />
+      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/composer" />
       <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
-      <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
-      <path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
+      <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-message" />
+      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/vendor/ezyang/htmlpurifier" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-factory" />
+      <path value="$PROJECT_DIR$/vendor/psr/http-client" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
       <path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
       <path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
-      <path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
-      <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
-      <path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
-      <path value="$PROJECT_DIR$/vendor/composer" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-color" />
+      <path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
+      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
+      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
+      <path value="$PROJECT_DIR$/vendor/phpoffice/phpspreadsheet" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
+      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
       <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
       <path value="$PROJECT_DIR$/vendor/sebastian/type" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/version" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/environment" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/vendor/firebase/php-jwt" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/diff" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
+      <path value="$PROJECT_DIR$/vendor/maennchen/zipstream-php" />
       <path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
-      <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
-      <path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
-      <path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
-      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-color" />
-      <path value="$PROJECT_DIR$/vendor/php-parallel-lint/php-console-highlighter" />
-      <path value="$PROJECT_DIR$/vendor/psr/container" />
-      <path value="$PROJECT_DIR$/vendor/psr/log" />
-      <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+      <path value="$PROJECT_DIR$/vendor/markbaker/matrix" />
+      <path value="$PROJECT_DIR$/vendor/markbaker/complex" />
       <path value="$PROJECT_DIR$/vendor/psy/psysh" />
-      <path value="$PROJECT_DIR$/vendor/filp/whoops" />
-      <path value="$PROJECT_DIR$/vendor/opis/closure" />
-      <path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
       <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
-      <path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
-      <path value="$PROJECT_DIR$/vendor/facade/ignition" />
-      <path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
-      <path value="$PROJECT_DIR$/vendor/league/commonmark" />
-      <path value="$PROJECT_DIR$/vendor/league/flysystem" />
-      <path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
-      <path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
-      <path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
-      <path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
-      <path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
-      <path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
-      <path value="$PROJECT_DIR$/vendor/laravel/framework" />
-      <path value="$PROJECT_DIR$/vendor/laravel/tinker" />
-      <path value="$PROJECT_DIR$/vendor/mockery/mockery" />
-      <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/php-enum" />
       <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
-      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
-      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
-      <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
-      <path value="$PROJECT_DIR$/vendor/symfony/console" />
-      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
-      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
-      <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
-      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
-      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
-      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
-      <path value="$PROJECT_DIR$/vendor/symfony/mime" />
+      <path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
+      <path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
+      <path value="$PROJECT_DIR$/vendor/maatwebsite/excel" />
     </include_path>
   </component>
-  <component name="ProjectId" id="2QVGg2lShwb30AK1Ppm31IIWnEP" />
+  <component name="ProjectId" id="2XnCHTSCuOIvOs9KfrJ9e7axZrc" />
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectViewState">
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
@@ -128,13 +156,16 @@
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="nodejs_package_manager_path" value="npm" />
+    <property name="settings.editor.selected.configurable" value="preferences.editor" />
     <property name="vue.rearranger.settings.migration" value="true" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
-      <recent name="D:\phpstudy_pro\WWW\jf_admin2.0\app\Model" />
-      <recent name="D:\phpstudy_pro\WWW\jf_admin2.0\app\Service" />
-      <recent name="D:\phpstudy_pro\WWW\jf_admin2.0\app\Http\Controllers\Api" />
+      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Model" />
+      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Service" />
+      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Http\Controllers\Api" />
+      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Scopes" />
+      <recent name="D:\phpstudy_pro\WWW\t_nine\config" />
     </key>
   </component>
   <component name="RunManager">
@@ -146,45 +177,556 @@
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
     <task active="true" id="Default" summary="默认任务">
-      <changelist id="b5852db3-28ab-419d-82cf-b6c0f6b99397" name="变更" comment="" />
-      <created>1685431444318</created>
+      <changelist id="176ce5b1-6b6f-444a-bf9c-bbc11ffdb486" name="变更" comment="" />
+      <created>1699255369227</created>
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
-      <updated>1685431444318</updated>
-      <workItem from="1685431446464" duration="71000" />
-      <workItem from="1685595177391" duration="2533000" />
-      <workItem from="1685669123669" duration="2439000" />
-      <workItem from="1685952381761" duration="726000" />
-      <workItem from="1686021203384" duration="14595000" />
-      <workItem from="1686099374239" duration="19779000" />
-      <workItem from="1686185795830" duration="871000" />
+      <updated>1699255369227</updated>
+      <workItem from="1699255371990" duration="163000" />
+      <workItem from="1699255605981" duration="7196000" />
+      <workItem from="1699318804014" duration="15698000" />
+      <workItem from="1699405462851" duration="23462000" />
+      <workItem from="1699492003342" duration="20897000" />
+      <workItem from="1699578579546" duration="12914000" />
+      <workItem from="1699850287746" duration="12852000" />
+      <workItem from="1699923774987" duration="20882000" />
+      <workItem from="1700010561107" duration="12921000" />
+      <workItem from="1700096705878" duration="7837000" />
+      <workItem from="1700184214149" duration="14346000" />
+      <workItem from="1700442040892" duration="14573000" />
+      <workItem from="1700531360002" duration="9087000" />
+      <workItem from="1700547749547" duration="11369000" />
+      <workItem from="1700614409632" duration="20983000" />
+      <workItem from="1700700973784" duration="12584000" />
+      <workItem from="1700808553812" duration="306000" />
+      <workItem from="1700818098939" duration="2044000" />
+      <workItem from="1701046589491" duration="17608000" />
+      <workItem from="1701132750393" duration="22323000" />
+      <workItem from="1701219044116" duration="21492000" />
+      <workItem from="1701306979892" duration="25549000" />
+      <workItem from="1701392157301" duration="11522000" />
+      <workItem from="1701651873682" duration="15816000" />
+      <workItem from="1701739295136" duration="14307000" />
+      <workItem from="1701824579948" duration="26655000" />
+      <workItem from="1701911594907" duration="17359000" />
+      <workItem from="1701999081464" duration="16581000" />
+      <workItem from="1702256046599" duration="6566000" />
+      <workItem from="1702342585824" duration="23137000" />
+      <workItem from="1702429212903" duration="25614000" />
+      <workItem from="1702516836298" duration="19715000" />
+      <workItem from="1702602153957" duration="18864000" />
+      <workItem from="1702862887633" duration="15699000" />
+      <workItem from="1702947240183" duration="26324000" />
+      <workItem from="1703034366906" duration="23580000" />
+      <workItem from="1703121271956" duration="25625000" />
+      <workItem from="1703206909620" duration="21691000" />
+      <workItem from="1703466398179" duration="7489000" />
+      <workItem from="1703552973462" duration="16416000" />
+      <workItem from="1703638584564" duration="24592000" />
+      <workItem from="1703726213647" duration="16747000" />
+      <workItem from="1703813289321" duration="18213000" />
+      <workItem from="1703905174782" duration="625000" />
+      <workItem from="1704157369380" duration="20149000" />
+      <workItem from="1704244039029" duration="21883000" />
+      <workItem from="1704329760217" duration="29863000" />
+      <workItem from="1704416328387" duration="8686000" />
+    </task>
+    <task id="LOCAL-00172" summary="1">
+      <created>1703583245378</created>
+      <option name="number" value="00172" />
+      <option name="presentableId" value="LOCAL-00172" />
+      <option name="project" value="LOCAL" />
+      <updated>1703583245378</updated>
+    </task>
+    <task id="LOCAL-00173" summary="1">
+      <created>1703585628202</created>
+      <option name="number" value="00173" />
+      <option name="presentableId" value="LOCAL-00173" />
+      <option name="project" value="LOCAL" />
+      <updated>1703585628202</updated>
+    </task>
+    <task id="LOCAL-00174" summary="1">
+      <created>1703657262400</created>
+      <option name="number" value="00174" />
+      <option name="presentableId" value="LOCAL-00174" />
+      <option name="project" value="LOCAL" />
+      <updated>1703657262401</updated>
+    </task>
+    <task id="LOCAL-00175" summary="1">
+      <created>1703669328774</created>
+      <option name="number" value="00175" />
+      <option name="presentableId" value="LOCAL-00175" />
+      <option name="project" value="LOCAL" />
+      <updated>1703669328774</updated>
+    </task>
+    <task id="LOCAL-00176" summary="1">
+      <created>1703731913810</created>
+      <option name="number" value="00176" />
+      <option name="presentableId" value="LOCAL-00176" />
+      <option name="project" value="LOCAL" />
+      <updated>1703731913811</updated>
+    </task>
+    <task id="LOCAL-00177" summary="1">
+      <created>1703751835169</created>
+      <option name="number" value="00177" />
+      <option name="presentableId" value="LOCAL-00177" />
+      <option name="project" value="LOCAL" />
+      <updated>1703751835169</updated>
+    </task>
+    <task id="LOCAL-00178" summary="1">
+      <created>1703843218578</created>
+      <option name="number" value="00178" />
+      <option name="presentableId" value="LOCAL-00178" />
+      <option name="project" value="LOCAL" />
+      <updated>1703843218579</updated>
+    </task>
+    <task id="LOCAL-00179" summary="1">
+      <created>1703843978667</created>
+      <option name="number" value="00179" />
+      <option name="presentableId" value="LOCAL-00179" />
+      <option name="project" value="LOCAL" />
+      <updated>1703843978667</updated>
+    </task>
+    <task id="LOCAL-00180" summary="1">
+      <created>1704164439745</created>
+      <option name="number" value="00180" />
+      <option name="presentableId" value="LOCAL-00180" />
+      <option name="project" value="LOCAL" />
+      <updated>1704164439745</updated>
+    </task>
+    <task id="LOCAL-00181" summary="1">
+      <created>1704164674332</created>
+      <option name="number" value="00181" />
+      <option name="presentableId" value="LOCAL-00181" />
+      <option name="project" value="LOCAL" />
+      <updated>1704164674332</updated>
+    </task>
+    <task id="LOCAL-00182" summary="1">
+      <created>1704178634002</created>
+      <option name="number" value="00182" />
+      <option name="presentableId" value="LOCAL-00182" />
+      <option name="project" value="LOCAL" />
+      <updated>1704178634002</updated>
+    </task>
+    <task id="LOCAL-00183" summary="1">
+      <created>1704179303081</created>
+      <option name="number" value="00183" />
+      <option name="presentableId" value="LOCAL-00183" />
+      <option name="project" value="LOCAL" />
+      <updated>1704179303081</updated>
+    </task>
+    <task id="LOCAL-00184" summary="1">
+      <created>1704248235927</created>
+      <option name="number" value="00184" />
+      <option name="presentableId" value="LOCAL-00184" />
+      <option name="project" value="LOCAL" />
+      <updated>1704248235928</updated>
+    </task>
+    <task id="LOCAL-00185" summary="1">
+      <created>1704250284857</created>
+      <option name="number" value="00185" />
+      <option name="presentableId" value="LOCAL-00185" />
+      <option name="project" value="LOCAL" />
+      <updated>1704250284857</updated>
+    </task>
+    <task id="LOCAL-00186" summary="1">
+      <created>1704260680916</created>
+      <option name="number" value="00186" />
+      <option name="presentableId" value="LOCAL-00186" />
+      <option name="project" value="LOCAL" />
+      <updated>1704260680916</updated>
+    </task>
+    <task id="LOCAL-00187" summary="1">
+      <created>1704263676175</created>
+      <option name="number" value="00187" />
+      <option name="presentableId" value="LOCAL-00187" />
+      <option name="project" value="LOCAL" />
+      <updated>1704263676175</updated>
+    </task>
+    <task id="LOCAL-00188" summary="1">
+      <created>1704263958094</created>
+      <option name="number" value="00188" />
+      <option name="presentableId" value="LOCAL-00188" />
+      <option name="project" value="LOCAL" />
+      <updated>1704263958095</updated>
+    </task>
+    <task id="LOCAL-00189" summary="1">
+      <created>1704332520949</created>
+      <option name="number" value="00189" />
+      <option name="presentableId" value="LOCAL-00189" />
+      <option name="project" value="LOCAL" />
+      <updated>1704332520949</updated>
+    </task>
+    <task id="LOCAL-00190" summary="1">
+      <created>1704334559929</created>
+      <option name="number" value="00190" />
+      <option name="presentableId" value="LOCAL-00190" />
+      <option name="project" value="LOCAL" />
+      <updated>1704334559929</updated>
+    </task>
+    <task id="LOCAL-00191" summary="1">
+      <created>1704343938193</created>
+      <option name="number" value="00191" />
+      <option name="presentableId" value="LOCAL-00191" />
+      <option name="project" value="LOCAL" />
+      <updated>1704343938193</updated>
+    </task>
+    <task id="LOCAL-00192" summary="1">
+      <created>1704346460971</created>
+      <option name="number" value="00192" />
+      <option name="presentableId" value="LOCAL-00192" />
+      <option name="project" value="LOCAL" />
+      <updated>1704346460971</updated>
+    </task>
+    <task id="LOCAL-00193" summary="1">
+      <created>1704346694713</created>
+      <option name="number" value="00193" />
+      <option name="presentableId" value="LOCAL-00193" />
+      <option name="project" value="LOCAL" />
+      <updated>1704346694713</updated>
+    </task>
+    <task id="LOCAL-00194" summary="1">
+      <created>1704347206668</created>
+      <option name="number" value="00194" />
+      <option name="presentableId" value="LOCAL-00194" />
+      <option name="project" value="LOCAL" />
+      <updated>1704347206668</updated>
+    </task>
+    <task id="LOCAL-00195" summary="1">
+      <created>1704347412646</created>
+      <option name="number" value="00195" />
+      <option name="presentableId" value="LOCAL-00195" />
+      <option name="project" value="LOCAL" />
+      <updated>1704347412646</updated>
+    </task>
+    <task id="LOCAL-00196" summary="1">
+      <created>1704347629035</created>
+      <option name="number" value="00196" />
+      <option name="presentableId" value="LOCAL-00196" />
+      <option name="project" value="LOCAL" />
+      <updated>1704347629035</updated>
+    </task>
+    <task id="LOCAL-00197" summary="1">
+      <created>1704348640957</created>
+      <option name="number" value="00197" />
+      <option name="presentableId" value="LOCAL-00197" />
+      <option name="project" value="LOCAL" />
+      <updated>1704348640957</updated>
     </task>
+    <task id="LOCAL-00198" summary="1">
+      <created>1704349046152</created>
+      <option name="number" value="00198" />
+      <option name="presentableId" value="LOCAL-00198" />
+      <option name="project" value="LOCAL" />
+      <updated>1704349046152</updated>
+    </task>
+    <task id="LOCAL-00199" summary="1">
+      <created>1704349133489</created>
+      <option name="number" value="00199" />
+      <option name="presentableId" value="LOCAL-00199" />
+      <option name="project" value="LOCAL" />
+      <updated>1704349133489</updated>
+    </task>
+    <task id="LOCAL-00200" summary="1">
+      <created>1704349258502</created>
+      <option name="number" value="00200" />
+      <option name="presentableId" value="LOCAL-00200" />
+      <option name="project" value="LOCAL" />
+      <updated>1704349258502</updated>
+    </task>
+    <task id="LOCAL-00201" summary="1">
+      <created>1704349379510</created>
+      <option name="number" value="00201" />
+      <option name="presentableId" value="LOCAL-00201" />
+      <option name="project" value="LOCAL" />
+      <updated>1704349379510</updated>
+    </task>
+    <task id="LOCAL-00202" summary="1">
+      <created>1704349465060</created>
+      <option name="number" value="00202" />
+      <option name="presentableId" value="LOCAL-00202" />
+      <option name="project" value="LOCAL" />
+      <updated>1704349465060</updated>
+    </task>
+    <task id="LOCAL-00203" summary="1">
+      <created>1704350378577</created>
+      <option name="number" value="00203" />
+      <option name="presentableId" value="LOCAL-00203" />
+      <option name="project" value="LOCAL" />
+      <updated>1704350378577</updated>
+    </task>
+    <task id="LOCAL-00204" summary="1">
+      <created>1704350799099</created>
+      <option name="number" value="00204" />
+      <option name="presentableId" value="LOCAL-00204" />
+      <option name="project" value="LOCAL" />
+      <updated>1704350799099</updated>
+    </task>
+    <task id="LOCAL-00205" summary="1">
+      <created>1704350896710</created>
+      <option name="number" value="00205" />
+      <option name="presentableId" value="LOCAL-00205" />
+      <option name="project" value="LOCAL" />
+      <updated>1704350896710</updated>
+    </task>
+    <task id="LOCAL-00206" summary="1">
+      <created>1704350938245</created>
+      <option name="number" value="00206" />
+      <option name="presentableId" value="LOCAL-00206" />
+      <option name="project" value="LOCAL" />
+      <updated>1704350938245</updated>
+    </task>
+    <task id="LOCAL-00207" summary="1">
+      <created>1704351025993</created>
+      <option name="number" value="00207" />
+      <option name="presentableId" value="LOCAL-00207" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351025993</updated>
+    </task>
+    <task id="LOCAL-00208" summary="1">
+      <created>1704351071869</created>
+      <option name="number" value="00208" />
+      <option name="presentableId" value="LOCAL-00208" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351071869</updated>
+    </task>
+    <task id="LOCAL-00209" summary="1">
+      <created>1704351168803</created>
+      <option name="number" value="00209" />
+      <option name="presentableId" value="LOCAL-00209" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351168803</updated>
+    </task>
+    <task id="LOCAL-00210" summary="1">
+      <created>1704351388209</created>
+      <option name="number" value="00210" />
+      <option name="presentableId" value="LOCAL-00210" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351388209</updated>
+    </task>
+    <task id="LOCAL-00211" summary="1">
+      <created>1704351441475</created>
+      <option name="number" value="00211" />
+      <option name="presentableId" value="LOCAL-00211" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351441475</updated>
+    </task>
+    <task id="LOCAL-00212" summary="1">
+      <created>1704351927666</created>
+      <option name="number" value="00212" />
+      <option name="presentableId" value="LOCAL-00212" />
+      <option name="project" value="LOCAL" />
+      <updated>1704351927666</updated>
+    </task>
+    <task id="LOCAL-00213" summary="1">
+      <created>1704353323758</created>
+      <option name="number" value="00213" />
+      <option name="presentableId" value="LOCAL-00213" />
+      <option name="project" value="LOCAL" />
+      <updated>1704353323759</updated>
+    </task>
+    <task id="LOCAL-00214" summary="1">
+      <created>1704353450861</created>
+      <option name="number" value="00214" />
+      <option name="presentableId" value="LOCAL-00214" />
+      <option name="project" value="LOCAL" />
+      <updated>1704353450861</updated>
+    </task>
+    <task id="LOCAL-00215" summary="1">
+      <created>1704357113365</created>
+      <option name="number" value="00215" />
+      <option name="presentableId" value="LOCAL-00215" />
+      <option name="project" value="LOCAL" />
+      <updated>1704357113365</updated>
+    </task>
+    <task id="LOCAL-00216" summary="1">
+      <created>1704357281861</created>
+      <option name="number" value="00216" />
+      <option name="presentableId" value="LOCAL-00216" />
+      <option name="project" value="LOCAL" />
+      <updated>1704357281861</updated>
+    </task>
+    <task id="LOCAL-00217" summary="1">
+      <created>1704357531710</created>
+      <option name="number" value="00217" />
+      <option name="presentableId" value="LOCAL-00217" />
+      <option name="project" value="LOCAL" />
+      <updated>1704357531710</updated>
+    </task>
+    <task id="LOCAL-00218" summary="1">
+      <created>1704361462020</created>
+      <option name="number" value="00218" />
+      <option name="presentableId" value="LOCAL-00218" />
+      <option name="project" value="LOCAL" />
+      <updated>1704361462020</updated>
+    </task>
+    <task id="LOCAL-00219" summary="1">
+      <created>1704362565288</created>
+      <option name="number" value="00219" />
+      <option name="presentableId" value="LOCAL-00219" />
+      <option name="project" value="LOCAL" />
+      <updated>1704362565288</updated>
+    </task>
+    <task id="LOCAL-00220" summary="1">
+      <created>1704363120349</created>
+      <option name="number" value="00220" />
+      <option name="presentableId" value="LOCAL-00220" />
+      <option name="project" value="LOCAL" />
+      <updated>1704363120349</updated>
+    </task>
+    <option name="localTasksCounter" value="221" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="3" />
   </component>
+  <component name="VcsManagerConfiguration">
+    <MESSAGE value="产品根据范围呈现数据" />
+    <MESSAGE value="发货单" />
+    <MESSAGE value="采购单状态更新" />
+    <MESSAGE value="收货单" />
+    <MESSAGE value="菜单按钮" />
+    <MESSAGE value="基础类型" />
+    <MESSAGE value="销售订单基本架构" />
+    <MESSAGE value="详情问题" />
+    <MESSAGE value="产品" />
+    <MESSAGE value="合同" />
+    <MESSAGE value="销售订单" />
+    <MESSAGE value="数值校验" />
+    <MESSAGE value="合同 施工单 加部门和人员范围" />
+    <MESSAGE value="查看权限" />
+    <MESSAGE value="合同状态锁定" />
+    <MESSAGE value="施工单完成" />
+    <MESSAGE value="施工单" />
+    <MESSAGE value="审核" />
+    <MESSAGE value="施工单完成一半" />
+    <MESSAGE value="快递件流程结束" />
+    <MESSAGE value="主流程" />
+    <MESSAGE value="现存量" />
+    <MESSAGE value="修改" />
+    <MESSAGE value="做到产品加上自定义的钱" />
+    <MESSAGE value="1" />
+    <option name="LAST_COMMIT_MESSAGE" value="1" />
+  </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
         <line-breakpoint enabled="true" type="php-line-method">
-          <url>file://$PROJECT_DIR$/app/Service/TechnologyService.php</url>
-          <line>14</line>
+          <url>file://$PROJECT_DIR$/app/Service/HeaderWord/HeaderWordHookService.php</url>
+          <line>59</line>
           <properties>
-            <option name="className" value="\App\Service\TechnologyService" />
-            <option name="methodName" value="basicProcessList" />
+            <option name="className" value="\App\Service\HeaderWord\HeaderWordHookService" />
+            <option name="methodName" value="add" />
           </properties>
           <option name="timeStamp" value="2" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="php-line-method">
-          <url>file://$PROJECT_DIR$/app/Service/ProcessService.php</url>
-          <line>108</line>
+          <url>file://$PROJECT_DIR$/app/Service/EmployeeService.php</url>
+          <line>328</line>
           <properties>
-            <option name="className" value="\App\Service\ProcessService" />
-            <option name="methodName" value="processAdd" />
+            <option name="className" value="\App\Service\EmployeeService" />
+            <option name="methodName" value="roleEdit" />
           </properties>
           <option name="timeStamp" value="3" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/EmployeeService.php</url>
+          <line>1064</line>
+          <properties>
+            <option name="className" value="\App\Service\EmployeeService" />
+            <option name="methodName" value="getPersonRole" />
+          </properties>
+          <option name="timeStamp" value="5" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/EmployeeService.php</url>
+          <line>364</line>
+          <properties>
+            <option name="className" value="\App\Service\EmployeeService" />
+            <option name="methodName" value="roleDel" />
+          </properties>
+          <option name="timeStamp" value="7" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/SalesOrderService.php</url>
+          <line>846</line>
+          <properties>
+            <option name="className" value="\App\Service\SalesOrderService" />
+            <option name="methodName" value="salesOrderDispatchCompanyRule" />
+          </properties>
+          <option name="timeStamp" value="11" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Http/Controllers/Api/ProductInventoryController.php</url>
+          <line>11</line>
+          <properties>
+            <option name="className" value="\App\Http\Controllers\Api\ProductInventoryController" />
+            <option name="methodName" value="productInventoryList" />
+          </properties>
+          <option name="timeStamp" value="16" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/CustomerService.php</url>
+          <line>437</line>
+          <properties>
+            <option name="className" value="\App\Service\CustomerService" />
+            <option name="methodName" value="customerList" />
+          </properties>
+          <option name="timeStamp" value="19" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/RangeService.php</url>
+          <line>281</line>
+          <properties>
+            <option name="className" value="\App\Service\RangeService" />
+            <option name="methodName" value="supplierRange" />
+          </properties>
+          <option name="timeStamp" value="25" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php-line-method">
+          <url>file://$PROJECT_DIR$/app/Service/ProductInventoryService.php</url>
+          <line>216</line>
+          <properties>
+            <option name="className" value="\App\Service\ProductInventoryService" />
+            <option name="methodName" value="fillListData" />
+          </properties>
+          <option name="timeStamp" value="28" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/OperationLogService.php</url>
+          <line>130</line>
+          <option name="timeStamp" value="8" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/SalesOrderService.php</url>
+          <line>214</line>
+          <option name="timeStamp" value="9" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/CustomerService.php</url>
+          <line>212</line>
+          <option name="timeStamp" value="10" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/EmployeeService.php</url>
+          <line>758</line>
+          <option name="timeStamp" value="12" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/ConstructionService.php</url>
+          <line>90</line>
+          <option name="timeStamp" value="15" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/ProductInventoryService.php</url>
+          <line>114</line>
+          <option name="timeStamp" value="17" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="php">
+          <url>file://$PROJECT_DIR$/app/Service/ProductInventoryService.php</url>
+          <line>186</line>
+          <option name="timeStamp" value="26" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>

+ 3 - 1
app/Http/Middleware/CheckLogin.php

@@ -48,10 +48,12 @@ class CheckLogin
         $data['depart_map'] = $return[2] ?? [];
         //权限范围内的部门以及公司
         $data['depart_range'] = $return[3] ?? [];
-        //是否有所有的部门 (是否总公司)
+        //是否有所有的部门权限
         $data['is_all_depart'] = $return[4] ?? 0;
         //总公司
         $data['head'] = $return[5] ?? [];
+        //是否是总公司下的人
+        $data['is_behind_main'] = $return[6] ?? 0;
         //是否库存校验
         $data['is_check_stock'] = true;
 

+ 4 - 2
app/Model/PurchaseOrder.php

@@ -9,11 +9,13 @@ class PurchaseOrder extends UseScopeBaseModel
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
     const STATE_ZERO = 0;//未确认
-    const STATE_ONE = 1;//已确认
+    const STATE_ONE = 1;//未入库
+    const STATE_TWO = 2;//已入库
     const prefix = 'CG';
     public static $name = [
         self::STATE_ZERO => '未确认',
-        self::STATE_ONE => '已确认',
+        self::STATE_ONE => '未入库',
+        self::STATE_TWO => '已入库',
     ];
 
     const Order_type_one = 1;//普通采购

+ 18 - 6
app/Service/CheckService.php

@@ -26,10 +26,11 @@ class CheckService extends Service
     //审批操作对应的数值
     const one = 1; //收货
     const two = 2; //发货
-    const three = 3; //采购单
+    const three = 3; //采购单入库
     const four = 4; //合同
     const five = 5; //施工单
     const six = 6; //退换货单
+    const seven = 7; //采购单确认
 
     //中文对照
     public $map = [
@@ -39,6 +40,7 @@ class CheckService extends Service
         self::four => '合同',
         self::five => '施工单',//确认后出库
         self::six => '退换货单',//确认后出库或出库入库
+        self::seven => '采购单确认',
     ];
 
     //入库操作
@@ -61,6 +63,7 @@ class CheckService extends Service
         self::three => 'confirmPurchaseOrder',
         self::five => 'confirmConstruction',
         self::six => 'confirmReturnExchangeOrder',
+        self::seven => 'confirmPurchaseOrderState'
     ];
 
     //单据库存流水
@@ -71,9 +74,8 @@ class CheckService extends Service
         self::six => 'recordReturnExchangeOrder'
     ];
 
-    //自动生成合同
     public static $create = [
-        self::three => 'createPurchaseOrderSales', //分社合同生成
+        self::seven => 'createPurchaseOrderSales', //分社合同生成
     ];
 
     public function confirmInvoiceOrder($data){
@@ -121,15 +123,26 @@ class CheckService extends Service
         return [true,''];
     }
 
+    public function confirmPurchaseOrderState($data){
+        $model = PurchaseOrder::where('id',$data['id'])
+            ->where('del_time',0)
+            ->first();
+        if(empty($model)) return [false,'采购单不存在或已被删除'];
+        if(! empty($model->state)) return [false,'采购单已确认'];
+
+        PurchaseOrder::where('id',$data['id'])->update(['state' => PurchaseOrder::STATE_ONE]);
+        return [true, $model->toArray()];
+    }
+
     public function confirmPurchaseOrder($data){
         $model = PurchaseOrder::where('id',$data['id'])
             ->where('del_time',0)
             ->first();
         if(empty($model)) return [false, '采购订单不存在或已被删除'];
-        if($model->state != PurchaseOrder::STATE_ZERO) return [false, '请确认采购订单状态,操作失败'];
+        if($model->state != PurchaseOrder::STATE_ONE) return [false, '请确认采购订单状态,操作失败'];
 
         PurchaseOrder::where('del_time',0)->where('id',$data['id'])
-            ->update(['state' => PurchaseOrder::STATE_ONE]);
+            ->update(['state' => PurchaseOrder::STATE_TWO]);
 
         return [true, $model->toArray()];
     }
@@ -375,7 +388,6 @@ class CheckService extends Service
                 }
             }
 
-            //自动生成合同
             if($create) {
                 $bool = $this->$create($data, $order, $user);
                 if(! $bool) {

+ 4 - 2
app/Service/EmployeeService.php

@@ -1218,7 +1218,7 @@ class EmployeeService extends Service
             ->get()->toArray();
 
         $top = $map = $rule = $head = [];
-        $is_all_depart = 0;
+        $is_all_depart = $is_behind_main = 0;
         if(! empty($depart)){
             //库存校验
             $set_map = ProductInventorySet::where('del_time',0)->pluck('param_one','top_depart_id')->toArray();
@@ -1239,6 +1239,7 @@ class EmployeeService extends Service
                     ];
                     $map[$value['depart_id']] = $value['depart_id'];
                     if(! empty($value['is_main']) && ! $is_all_depart) $is_all_depart = 1;
+                    if(! empty($value['is_main']) && ! $is_behind_main) $is_behind_main = 1;
                 }else{
                     $t = self::getTopParentId($value['depart_id'],$list);
                     if($t && isset($depart_map[$t])) {
@@ -1254,6 +1255,7 @@ class EmployeeService extends Service
                         ];
                         $map[$value['depart_id']] = $t;
                         if(! empty($t_tmp['is_main']) && $value['is_main'] && ! $is_all_depart) $is_all_depart = 1;
+                        if(! empty($t_tmp['is_main']) && ! $is_behind_main) $is_behind_main = 1;
                     }
                 }
             }
@@ -1291,7 +1293,7 @@ class EmployeeService extends Service
         $top = array_values($top);
         $rule = array_unique($rule);
 
-        return [$depart, $top, $map, $rule, $is_all_depart,$head];
+        return [$depart, $top, $map, $rule, $is_all_depart, $head, $is_behind_main];
     }
 
     //判断是否总公司

+ 22 - 4
app/Service/PurchaseOrderService.php

@@ -302,7 +302,7 @@ class PurchaseOrderService extends Service
         }
 
         $list = $this->limit($model,'',$data);
-        $list = $this->fillListData($list,$data);
+        $list = $this->fillListData($list,$data,$user);
 
         return [true, $list];
     }
@@ -312,7 +312,7 @@ class PurchaseOrderService extends Service
      * @param $data
      * @return array
      */
-    public function fillListData($data,$ergs){
+    public function fillListData($data,$ergs,$user){
         if(empty($data['data'])) return $data;
 
         $depart_id = array_unique(array_column($data['data'],'depart_id'));
@@ -330,8 +330,10 @@ class PurchaseOrderService extends Service
             ->pluck('title','id')
             ->toArray();
         $supplier = Supplier::whereIn('id',array_unique(array_column($data['data'],'supplier')))
-            ->pluck('title','id')
+            ->select('title','id','is_main')
+            ->get()
             ->toArray();
+        $supplier_map = array_column($supplier,null,'id');
         $product = [];
         if(! empty($ergs['product'])){
             $sales_p_info = PurchaseOrderInfo::where('del_time',0)
@@ -353,7 +355,23 @@ class PurchaseOrderService extends Service
         }
         //获取金额列表
         $money = (new BookingListService())->getAllAmount(array_column($data['data'],'id'), BookingList::data_type_two);
+        //总社id
+        $top_depart_id = $user['head'] ?? [];
         foreach ($data['data'] as $key => $value){
+            $supplier_tmp = $supplier_map[$value['supplier']] ?? [];
+            if(empty($value['state'])) {
+                //分社的采购单 供应商是总社
+                if($value['top_depart_id'] != $top_depart_id && ! empty($supplier_tmp['is_main'])) {
+                    $is_show_confirm = 0;
+                    //总公司下的人
+                    if($user['is_behind_main']) $is_show_confirm = 1;
+                }else{
+                    $is_show_confirm = 1;
+                }
+            }else{
+                $is_show_confirm = 0;
+            }
+            $data['data'][$key]['is_show_confirm'] = $is_show_confirm;
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']) : '';
             $data['data'][$key]['depart_name'] = $depart_map[$value['depart_id']] ?? '';
             $data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
@@ -362,7 +380,7 @@ class PurchaseOrderService extends Service
             $data['data'][$key]['state_title'] = PurchaseOrder::$name[$value['state']] ?? '';
             $data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
             $data['data'][$key]['storehouse_title'] = $storehouse[$value['storehouse_id']] ?? '';
-            $data['data'][$key]['supplier_title'] = $supplier[$value['supplier']] ?? '';
+            $data['data'][$key]['supplier_title'] = $supplier_tmp['title'] ?? '';
             $data['data'][$key]['product'] = $product[$value['id']] ?? [];
 
             //合同对应的金额数据

+ 1 - 0
app/Service/ReturnExchangeOrderService.php

@@ -256,6 +256,7 @@ class ReturnExchangeOrderService extends Service
             $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
             $model->whereBetween('crt_time',[$return[0],$return[1]]);
         }
+        if(isset($data['type'])) $model->where('type',$data['type']);
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillListData($list);