Ver Fonte

活动包更新

chenqp há 8 meses atrás
pai
commit
7bc57b96fc

+ 0 - 111
.idea/php.xml

@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="PhpIncludePathManager">
-    <include_path>
-      <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/symfony/service-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
-      <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/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/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/object-reflector" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/type" />
-      <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/markbaker/matrix" />
-      <path value="$PROJECT_DIR$/vendor/markbaker/complex" />
-      <path value="$PROJECT_DIR$/vendor/psy/psysh" />
-      <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
-      <path value="$PROJECT_DIR$/vendor/myclabs/php-enum" />
-      <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
-      <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" />
-  <component name="PhpUnit">
-    <phpunit_settings>
-      <PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
-    </phpunit_settings>
-  </component>
-</project>

+ 0 - 789
.idea/workspace.xml

@@ -1,789 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="176ce5b1-6b6f-444a-bf9c-bbc11ffdb486" name="变更" comment="">
-      <change afterPath="$PROJECT_DIR$/app/Jobs/ProcessDataJob.php" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/app/Model/ErrorTable.php" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/app/Model/U8Job.php" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/app/Service/U8ServerService.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Model/SalesOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Model/SalesOrder.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/InvoiceOrderService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/InvoiceOrderService.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Service/ProductService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/ProductService.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Service/SalesOrderService.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Service/SalesOrderService.php" afterDir="false" />
-    </list>
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
-    <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
-    <execution />
-  </component>
-  <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/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/symfony/service-contracts" />
-      <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
-      <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/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/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/object-reflector" />
-      <path value="$PROJECT_DIR$/vendor/sebastian/type" />
-      <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/markbaker/matrix" />
-      <path value="$PROJECT_DIR$/vendor/markbaker/complex" />
-      <path value="$PROJECT_DIR$/vendor/psy/psysh" />
-      <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
-      <path value="$PROJECT_DIR$/vendor/myclabs/php-enum" />
-      <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
-      <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="2XnCHTSCuOIvOs9KfrJ9e7axZrc" />
-  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
-  <component name="ProjectViewState">
-    <option name="hideEmptyMiddlePackages" value="true" />
-    <option name="showLibraryContents" value="true" />
-  </component>
-  <component name="PropertiesComponent">
-    <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
-    <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
-    <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/app/Model" />
-    <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\t_nine\app\Model" />
-      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Jobs" />
-      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Service" />
-      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Import" />
-      <recent name="D:\phpstudy_pro\WWW\t_nine\app\Http\Controllers\Api" />
-    </key>
-  </component>
-  <component name="RunManager">
-    <configuration name="phpunit.xml" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
-      <TestRunner scope="XML" />
-      <method v="2" />
-    </configuration>
-  </component>
-  <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="176ce5b1-6b6f-444a-bf9c-bbc11ffdb486" name="变更" comment="" />
-      <created>1699255369227</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <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="26739000" />
-      <workItem from="1704676074743" duration="5686000" />
-      <workItem from="1704761793355" duration="4531000" />
-      <workItem from="1704847964844" duration="591000" />
-      <workItem from="1704867151378" duration="153000" />
-      <workItem from="1704934833905" duration="8910000" />
-      <workItem from="1705020715512" duration="5595000" />
-      <workItem from="1705034260826" duration="12089000" />
-      <workItem from="1705107431430" duration="36589000" />
-      <workItem from="1705414912306" duration="594000" />
-      <workItem from="1705452775259" duration="25204000" />
-      <workItem from="1705540424670" duration="17030000" />
-      <workItem from="1705624970506" duration="20758000" />
-      <workItem from="1705709597246" duration="1527000" />
-      <workItem from="1705718397750" duration="3747000" />
-      <workItem from="1705887301166" duration="13213000" />
-      <workItem from="1705971438817" duration="6976000" />
-      <workItem from="1706057370827" duration="9451000" />
-      <workItem from="1706144032392" duration="2392000" />
-      <workItem from="1706251771834" duration="6923000" />
-      <workItem from="1706493262624" duration="2815000" />
-      <workItem from="1706601660898" duration="1269000" />
-      <workItem from="1706751844740" duration="571000" />
-      <workItem from="1706840778799" duration="6731000" />
-      <workItem from="1707094587066" duration="9884000" />
-      <workItem from="1707181451295" duration="2932000" />
-      <workItem from="1707267897344" duration="7263000" />
-      <workItem from="1708304127142" duration="11247000" />
-      <workItem from="1708390341238" duration="4848000" />
-      <workItem from="1708408122356" duration="4699000" />
-      <workItem from="1708478150660" duration="6388000" />
-      <workItem from="1708563560848" duration="14413000" />
-      <workItem from="1708649793729" duration="33145000" />
-      <workItem from="1708749432203" duration="8418000" />
-      <workItem from="1708788357692" duration="3491000" />
-      <workItem from="1708855053155" duration="12892000" />
-      <workItem from="1708928684736" duration="1196000" />
-      <workItem from="1708995251552" duration="2539000" />
-      <workItem from="1709082036084" duration="20609000" />
-      <workItem from="1709167932063" duration="8544000" />
-      <workItem from="1709260961711" duration="9785000" />
-    </task>
-    <task id="LOCAL-00229" summary="1">
-      <created>1704449078067</created>
-      <option name="number" value="00229" />
-      <option name="presentableId" value="LOCAL-00229" />
-      <option name="project" value="LOCAL" />
-      <updated>1704449078067</updated>
-    </task>
-    <task id="LOCAL-00230" summary="1">
-      <created>1704935550744</created>
-      <option name="number" value="00230" />
-      <option name="presentableId" value="LOCAL-00230" />
-      <option name="project" value="LOCAL" />
-      <updated>1704935550744</updated>
-    </task>
-    <task id="LOCAL-00231" summary="1">
-      <created>1705050949090</created>
-      <option name="number" value="00231" />
-      <option name="presentableId" value="LOCAL-00231" />
-      <option name="project" value="LOCAL" />
-      <updated>1705050949090</updated>
-    </task>
-    <task id="LOCAL-00232" summary="1">
-      <created>1705051779717</created>
-      <option name="number" value="00232" />
-      <option name="presentableId" value="LOCAL-00232" />
-      <option name="project" value="LOCAL" />
-      <updated>1705051779717</updated>
-    </task>
-    <task id="LOCAL-00233" summary="1">
-      <created>1705204177677</created>
-      <option name="number" value="00233" />
-      <option name="presentableId" value="LOCAL-00233" />
-      <option name="project" value="LOCAL" />
-      <updated>1705204177678</updated>
-    </task>
-    <task id="LOCAL-00234" summary="1">
-      <created>1705223124499</created>
-      <option name="number" value="00234" />
-      <option name="presentableId" value="LOCAL-00234" />
-      <option name="project" value="LOCAL" />
-      <updated>1705223124499</updated>
-    </task>
-    <task id="LOCAL-00235" summary="1">
-      <created>1705239281929</created>
-      <option name="number" value="00235" />
-      <option name="presentableId" value="LOCAL-00235" />
-      <option name="project" value="LOCAL" />
-      <updated>1705239281929</updated>
-    </task>
-    <task id="LOCAL-00236" summary="1">
-      <created>1705239438436</created>
-      <option name="number" value="00236" />
-      <option name="presentableId" value="LOCAL-00236" />
-      <option name="project" value="LOCAL" />
-      <updated>1705239438436</updated>
-    </task>
-    <task id="LOCAL-00237" summary="1">
-      <created>1705473563158</created>
-      <option name="number" value="00237" />
-      <option name="presentableId" value="LOCAL-00237" />
-      <option name="project" value="LOCAL" />
-      <updated>1705473563158</updated>
-    </task>
-    <task id="LOCAL-00238" summary="1">
-      <created>1705486452971</created>
-      <option name="number" value="00238" />
-      <option name="presentableId" value="LOCAL-00238" />
-      <option name="project" value="LOCAL" />
-      <updated>1705486452971</updated>
-    </task>
-    <task id="LOCAL-00239" summary="1">
-      <created>1705560334309</created>
-      <option name="number" value="00239" />
-      <option name="presentableId" value="LOCAL-00239" />
-      <option name="project" value="LOCAL" />
-      <updated>1705560334310</updated>
-    </task>
-    <task id="LOCAL-00240" summary="1">
-      <created>1705561248803</created>
-      <option name="number" value="00240" />
-      <option name="presentableId" value="LOCAL-00240" />
-      <option name="project" value="LOCAL" />
-      <updated>1705561248803</updated>
-    </task>
-    <task id="LOCAL-00241" summary="1">
-      <created>1705568012263</created>
-      <option name="number" value="00241" />
-      <option name="presentableId" value="LOCAL-00241" />
-      <option name="project" value="LOCAL" />
-      <updated>1705568012263</updated>
-    </task>
-    <task id="LOCAL-00242" summary="1">
-      <created>1705568969205</created>
-      <option name="number" value="00242" />
-      <option name="presentableId" value="LOCAL-00242" />
-      <option name="project" value="LOCAL" />
-      <updated>1705568969206</updated>
-    </task>
-    <task id="LOCAL-00243" summary="1">
-      <created>1705633375746</created>
-      <option name="number" value="00243" />
-      <option name="presentableId" value="LOCAL-00243" />
-      <option name="project" value="LOCAL" />
-      <updated>1705633375747</updated>
-    </task>
-    <task id="LOCAL-00244" summary="1">
-      <created>1705637433590</created>
-      <option name="number" value="00244" />
-      <option name="presentableId" value="LOCAL-00244" />
-      <option name="project" value="LOCAL" />
-      <updated>1705637433590</updated>
-    </task>
-    <task id="LOCAL-00245" summary="1">
-      <created>1705644953983</created>
-      <option name="number" value="00245" />
-      <option name="presentableId" value="LOCAL-00245" />
-      <option name="project" value="LOCAL" />
-      <updated>1705644953983</updated>
-    </task>
-    <task id="LOCAL-00246" summary="1">
-      <created>1705648296981</created>
-      <option name="number" value="00246" />
-      <option name="presentableId" value="LOCAL-00246" />
-      <option name="project" value="LOCAL" />
-      <updated>1705648296981</updated>
-    </task>
-    <task id="LOCAL-00247" summary="1">
-      <created>1705648908877</created>
-      <option name="number" value="00247" />
-      <option name="presentableId" value="LOCAL-00247" />
-      <option name="project" value="LOCAL" />
-      <updated>1705648908877</updated>
-    </task>
-    <task id="LOCAL-00248" summary="1">
-      <created>1705650443100</created>
-      <option name="number" value="00248" />
-      <option name="presentableId" value="LOCAL-00248" />
-      <option name="project" value="LOCAL" />
-      <updated>1705650443100</updated>
-    </task>
-    <task id="LOCAL-00249" summary="1">
-      <created>1705654677045</created>
-      <option name="number" value="00249" />
-      <option name="presentableId" value="LOCAL-00249" />
-      <option name="project" value="LOCAL" />
-      <updated>1705654677046</updated>
-    </task>
-    <task id="LOCAL-00250" summary="1">
-      <created>1705657222963</created>
-      <option name="number" value="00250" />
-      <option name="presentableId" value="LOCAL-00250" />
-      <option name="project" value="LOCAL" />
-      <updated>1705657222963</updated>
-    </task>
-    <task id="LOCAL-00251" summary="1">
-      <created>1705711006670</created>
-      <option name="number" value="00251" />
-      <option name="presentableId" value="LOCAL-00251" />
-      <option name="project" value="LOCAL" />
-      <updated>1705711006672</updated>
-    </task>
-    <task id="LOCAL-00252" summary="1">
-      <created>1705726975651</created>
-      <option name="number" value="00252" />
-      <option name="presentableId" value="LOCAL-00252" />
-      <option name="project" value="LOCAL" />
-      <updated>1705726975652</updated>
-    </task>
-    <task id="LOCAL-00253" summary="1">
-      <created>1705727110391</created>
-      <option name="number" value="00253" />
-      <option name="presentableId" value="LOCAL-00253" />
-      <option name="project" value="LOCAL" />
-      <updated>1705727110392</updated>
-    </task>
-    <task id="LOCAL-00254" summary="1">
-      <created>1705727512756</created>
-      <option name="number" value="00254" />
-      <option name="presentableId" value="LOCAL-00254" />
-      <option name="project" value="LOCAL" />
-      <updated>1705727512756</updated>
-    </task>
-    <task id="LOCAL-00255" summary="1">
-      <created>1705729419379</created>
-      <option name="number" value="00255" />
-      <option name="presentableId" value="LOCAL-00255" />
-      <option name="project" value="LOCAL" />
-      <updated>1705729419379</updated>
-    </task>
-    <task id="LOCAL-00256" summary="1">
-      <created>1705902264955</created>
-      <option name="number" value="00256" />
-      <option name="presentableId" value="LOCAL-00256" />
-      <option name="project" value="LOCAL" />
-      <updated>1705902264956</updated>
-    </task>
-    <task id="LOCAL-00257" summary="1">
-      <created>1705991254540</created>
-      <option name="number" value="00257" />
-      <option name="presentableId" value="LOCAL-00257" />
-      <option name="project" value="LOCAL" />
-      <updated>1705991254541</updated>
-    </task>
-    <task id="LOCAL-00258" summary="1">
-      <created>1706004631863</created>
-      <option name="number" value="00258" />
-      <option name="presentableId" value="LOCAL-00258" />
-      <option name="project" value="LOCAL" />
-      <updated>1706004631863</updated>
-    </task>
-    <task id="LOCAL-00259" summary="1">
-      <created>1706256007902</created>
-      <option name="number" value="00259" />
-      <option name="presentableId" value="LOCAL-00259" />
-      <option name="project" value="LOCAL" />
-      <updated>1706256007902</updated>
-    </task>
-    <task id="LOCAL-00260" summary="1">
-      <created>1707110065752</created>
-      <option name="number" value="00260" />
-      <option name="presentableId" value="LOCAL-00260" />
-      <option name="project" value="LOCAL" />
-      <updated>1707110065753</updated>
-    </task>
-    <task id="LOCAL-00261" summary="1">
-      <created>1707115056203</created>
-      <option name="number" value="00261" />
-      <option name="presentableId" value="LOCAL-00261" />
-      <option name="project" value="LOCAL" />
-      <updated>1707115056203</updated>
-    </task>
-    <task id="LOCAL-00262" summary="1">
-      <created>1707122881613</created>
-      <option name="number" value="00262" />
-      <option name="presentableId" value="LOCAL-00262" />
-      <option name="project" value="LOCAL" />
-      <updated>1707122881613</updated>
-    </task>
-    <task id="LOCAL-00263" summary="1">
-      <created>1707125561996</created>
-      <option name="number" value="00263" />
-      <option name="presentableId" value="LOCAL-00263" />
-      <option name="project" value="LOCAL" />
-      <updated>1707125561996</updated>
-    </task>
-    <task id="LOCAL-00264" summary="新增微信端区分是否绑定账号">
-      <created>1707200010484</created>
-      <option name="number" value="00264" />
-      <option name="presentableId" value="LOCAL-00264" />
-      <option name="project" value="LOCAL" />
-      <updated>1707200010484</updated>
-    </task>
-    <task id="LOCAL-00265" summary="1">
-      <created>1708594093608</created>
-      <option name="number" value="00265" />
-      <option name="presentableId" value="LOCAL-00265" />
-      <option name="project" value="LOCAL" />
-      <updated>1708594093609</updated>
-    </task>
-    <task id="LOCAL-00266" summary="1">
-      <created>1708671866076</created>
-      <option name="number" value="00266" />
-      <option name="presentableId" value="LOCAL-00266" />
-      <option name="project" value="LOCAL" />
-      <updated>1708671866078</updated>
-    </task>
-    <task id="LOCAL-00267" summary="1">
-      <created>1708679745249</created>
-      <option name="number" value="00267" />
-      <option name="presentableId" value="LOCAL-00267" />
-      <option name="project" value="LOCAL" />
-      <updated>1708679745250</updated>
-    </task>
-    <task id="LOCAL-00268" summary="1">
-      <created>1708754916499</created>
-      <option name="number" value="00268" />
-      <option name="presentableId" value="LOCAL-00268" />
-      <option name="project" value="LOCAL" />
-      <updated>1708754916500</updated>
-    </task>
-    <task id="LOCAL-00269" summary="1">
-      <created>1708912412166</created>
-      <option name="number" value="00269" />
-      <option name="presentableId" value="LOCAL-00269" />
-      <option name="project" value="LOCAL" />
-      <updated>1708912412167</updated>
-    </task>
-    <task id="LOCAL-00270" summary="1">
-      <created>1709028150589</created>
-      <option name="number" value="00270" />
-      <option name="presentableId" value="LOCAL-00270" />
-      <option name="project" value="LOCAL" />
-      <updated>1709028150589</updated>
-    </task>
-    <task id="LOCAL-00271" summary="1">
-      <created>1709028429480</created>
-      <option name="number" value="00271" />
-      <option name="presentableId" value="LOCAL-00271" />
-      <option name="project" value="LOCAL" />
-      <updated>1709028429480</updated>
-    </task>
-    <task id="LOCAL-00272" summary="1">
-      <created>1709105613826</created>
-      <option name="number" value="00272" />
-      <option name="presentableId" value="LOCAL-00272" />
-      <option name="project" value="LOCAL" />
-      <updated>1709105613826</updated>
-    </task>
-    <task id="LOCAL-00273" summary="1">
-      <created>1709115828930</created>
-      <option name="number" value="00273" />
-      <option name="presentableId" value="LOCAL-00273" />
-      <option name="project" value="LOCAL" />
-      <updated>1709115828930</updated>
-    </task>
-    <task id="LOCAL-00274" summary="1">
-      <created>1709115879429</created>
-      <option name="number" value="00274" />
-      <option name="presentableId" value="LOCAL-00274" />
-      <option name="project" value="LOCAL" />
-      <updated>1709115879429</updated>
-    </task>
-    <task id="LOCAL-00275" summary="1">
-      <created>1709176864882</created>
-      <option name="number" value="00275" />
-      <option name="presentableId" value="LOCAL-00275" />
-      <option name="project" value="LOCAL" />
-      <updated>1709176864883</updated>
-    </task>
-    <task id="LOCAL-00276" summary="1">
-      <created>1709189537300</created>
-      <option name="number" value="00276" />
-      <option name="presentableId" value="LOCAL-00276" />
-      <option name="project" value="LOCAL" />
-      <updated>1709189537300</updated>
-    </task>
-    <task id="LOCAL-00277" summary="1">
-      <created>1709193138747</created>
-      <option name="number" value="00277" />
-      <option name="presentableId" value="LOCAL-00277" />
-      <option name="project" value="LOCAL" />
-      <updated>1709193138747</updated>
-    </task>
-    <option name="localTasksCounter" value="278" />
-    <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/HeaderWord/HeaderWordHookService.php</url>
-          <line>59</line>
-          <properties>
-            <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/EmployeeService.php</url>
-          <line>329</line>
-          <properties>
-            <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>1089</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>365</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>922</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>444</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>313</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-line-method">
-          <url>file://$PROJECT_DIR$/app/Service/EmployeeService.php</url>
-          <line>1230</line>
-          <properties>
-            <option name="className" value="\App\Service\EmployeeService" />
-            <option name="methodName" value="getLoginDepart" />
-          </properties>
-          <option name="timeStamp" value="31" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="php-line-method">
-          <url>file://$PROJECT_DIR$/app/Import/Import.php</url>
-          <line>171</line>
-          <properties>
-            <option name="className" value="\App\Import\Import" />
-            <option name="methodName" value="checkData" />
-          </properties>
-          <option name="timeStamp" value="36" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="php">
-          <url>file://$PROJECT_DIR$/app/Service/OperationLogService.php</url>
-          <line>299</line>
-          <option name="timeStamp" value="8" />
-        </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/ConstructionService.php</url>
-          <line>95</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>
-        <line-breakpoint enabled="true" type="php">
-          <url>file://$PROJECT_DIR$/config/oa.php</url>
-          <line>547</line>
-          <option name="timeStamp" value="29" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="php">
-          <url>file://$PROJECT_DIR$/config/oa.php</url>
-          <line>6</line>
-          <option name="timeStamp" value="33" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="php">
-          <url>file://$PROJECT_DIR$/config/excel/product.php</url>
-          <line>2</line>
-          <option name="timeStamp" value="35" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-  </component>
-</project>

+ 12 - 0
app/Http/Controllers/Api/StatisticsController.php

@@ -18,4 +18,16 @@ class StatisticsController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function statisticsJc(Request $request){
+        $service = new StatisticsService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->statisticsJc($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 303 - 0
app/Service/StatisticsService.php

@@ -2,9 +2,312 @@
 
 namespace App\Service;
 
+use App\Model\Construction;
+use App\Model\ConstructionProductInfo;
+use App\Model\InOutRecord;
+use App\Model\InvoiceOrder;
+use App\Model\InvoiceOrderInfo;
+use App\Model\Product;
+use App\Model\ProductCategory;
+use App\Model\PurchaseOrder;
+use App\Model\PurchaseOrderInfo;
+use App\Model\ReturnExchangeOrder;
+use App\Model\ReturnExchangeOrderProductInfo;
+use App\Model\SalesOrder;
+use App\Model\SalesOrderProductInfo;
+use Illuminate\Support\Facades\DB;
+
 class StatisticsService extends Service
 {
     public function statisticsXs($data,$user){
 
     }
+
+    public function inoutrecord(){
+        $in_data = InvoiceOrder::where('del_time',0)
+            ->select('id','sales_order_id')
+            ->get()->toArray();
+
+        $map = [];
+        $s_p = SalesOrderProductInfo::whereIn('sales_order_id',array_column($in_data,'sales_order_id'))
+            ->where('del_time',0)
+            ->select('sales_order_id','product_id','final_amount','price')
+            ->get()->toArray();
+        foreach ($s_p as $value){
+            $map[$value['sales_order_id']][] = [
+                'product_id' => $value['product_id'],
+                'final_amount' => $value['final_amount'],
+                'price' => $value['price'],
+            ];
+        }
+
+        DB::beginTransaction();
+        try {
+            foreach ($in_data as $value){
+                $tmp = $map[$value['sales_order_id']] ?? [];
+                if(empty($tmp)) continue;
+                foreach ($tmp as $val){
+                    InvoiceOrderInfo::where('del_time',0)
+                        ->where('invoice_id', $value['id'])
+                        ->where('product_id', $val['product_id'])
+                        ->update([
+                            'final_amount' => $val['final_amount'],
+                            'price' => $val['price'],
+                        ]);
+                }
+
+            }
+        }catch (\Throwable $exception){
+            DB::rollBack();
+            dd($exception->getMessage());
+        }
+
+        DB::commit();
+        dd(1);
+
+    }
+
+    public function inoutrecord2(){
+        DB::beginTransaction();
+        try {
+            DB::table('in_out_record')
+                ->where('price',0)
+                ->whereIn('order_type', array_values(ReturnExchangeOrder::$prefix))
+                ->select('id','order_number','product_id')
+                ->orderBy('id','asc')
+                ->chunk(200,function ($data) {;
+                    $data = Collect($data)->map(function ($object) {
+                        return (array)$object;
+                    })->toArray();
+
+                    $map = ReturnExchangeOrder::where('del_time',0)
+                        ->whereIn('order_number',array_column($data,'order_number'))
+                        ->pluck('id','order_number')
+                        ->toArray();
+                    $result = ReturnExchangeOrderProductInfo::where('del_time',0)
+                        ->whereIn('return_exchange_id',array_values($map))
+                        ->select('return_exchange_id','return_exchange_price','product_id')
+                        ->get()->toArray();
+                    $result_map = [];
+                    foreach ($result as $v){
+                        $result_map[$v['return_exchange_id']][$v['product_id']] = [
+                            'product_id' => $v['product_id'],
+                            'price' => $v['return_exchange_price'],
+                        ];
+                    }
+
+                    foreach ($data as $value){
+                        $tmp_id = $map[$value['order_number']] ?? 0;
+                        if($tmp_id < 0) continue;
+                        $tmp = $result_map[$tmp_id][$value['product_id']] ?? [];
+                        if(empty($tmp)) continue;
+
+                        InOutRecord::where('id',$value['id'])->update([
+                            'price' => $tmp['price']
+                        ]);
+                    }
+            });
+
+            DB::commit();
+        }catch (\Throwable $exception){
+            DB::rollBack();
+            dd($exception->getMessage());
+        }
+        dd(1);
+    }
+
+    public function statisticsJc($data,$user){
+        if(empty($data['top_depart_id'])) return [false, '请选择门店'];
+        $model = Product::ProductClear($user,$data);
+        $model = $model->where('del_time',0)
+            ->select('title','id','code','depart_id','top_depart_id','product_attribute')
+            ->orderby('product_attribute', 'desc')
+            ->orderby('id', 'desc');
+
+        if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(isset($data['state'])) $model->where('state', $data['state']);
+        if(isset($data['is_use'])) $model->where('is_use', $data['is_use']);
+        if(isset($data['product_attribute'])) $model->where('product_attribute', $data['product_attribute']);
+        if(! empty($data['product_category_id'])) $model->where('product_category_id', $data['product_category_id']);
+        if(! empty($data['product_category'])) {
+            $product_category = ProductCategory::where('del_time',0)
+                ->where('title', 'LIKE', '%'.$data['product_category'].'%')
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('product_category_id',array_unique(array_column($product_category,'id')));
+        }
+        if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillData($list,$user,$data);
+
+        return [true, $list];
+    }
+
+    public function fillData($data, $user, $search){
+        if(empty($data['data'])) return $data;
+
+        //产品
+        $product = array_column($data,'id');
+        //本月入库 本月出库
+        list($in, $out) = $this->getThisMonthData($product,$user,$search);
+        //上月结存
+        $lastJc = $this->getLastMonthBalance($product,$user,$search);
+
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['in_number'] = $in[$value['id']] ?? 0;
+            $data['data'][$key]['out_number'] = $out[$value['id']] ?? 0;
+            $data['data'][$key]['last_jc_number'] = $lastJc[$value['id']] ?? 0;
+            $data['data'][$key]['last_jc_number'] = $lastJc[$value['id']] ?? 0;
+        }
+
+        return $data;
+    }
+
+    //本月入库 出库
+    public function getThisMonthData($product = [], $user = [], $search = []){
+        $in = $out = [];
+        $startStamp = strtotime(date("Y-m-01 00:00:00"));
+        $endStamp = strtotime(date("Y-m-t 23:59:59"));
+
+        //本月出和入的数据
+        $model = InOutRecord::TopClear($user,$search);
+        $list = $model->where('del_time',0)
+            ->where('crt_time','>=',$startStamp)
+            ->where('crt_time','<=',$endStamp)
+            ->whereIn('product_id',$product)
+            ->select('product_id','number')
+            ->get()->toArray();
+
+        foreach ($list as $value){
+            if($value['number'] >= 0){
+                if(isset($in[$value['product_id']])){
+                    $in[$value['product_id']] += $value['number'];
+                }else{
+                    $in[$value['product_id']] = $value['number'];
+                }
+            }else{
+                if(isset($out[$value['product_id']])){
+                    $out[$value['product_id']] += abs($value['number']);
+                }else{
+                    $out[$value['product_id']] = abs($value['number']);
+                }
+            }
+        }
+
+        return [$in, $out];
+    }
+
+    //上月结存
+    public function getLastMonthBalance($product = [], $user = [], $search = []){
+        $return = [];
+        $startStamp = strtotime(date("Y-m-01 00:00:00"));
+        $model = InOutRecord::TopClear($user,$search);
+        $list = $model->where('del_time',0)
+            ->where('crt_time','<',$startStamp)
+            ->whereIn('product_id',$product)
+            ->select('product_id','number')
+            ->get()->toArray();
+
+        foreach ($list as $value){
+            if(isset($return[$value['product_id']])){
+                $return[$value['product_id']] += $value['number'];
+            }else{
+                $return[$value['product_id']] = $value['number'];
+            }
+        }
+
+        return $return;
+    }
+
+    //本月入库
+    public function getThisMonthIn1($product = [], $user = [], $search = []){
+        $return = [];
+        $startStamp = strtotime(date("Y-m-01 00:00:00"));
+        $endStamp = strtotime(date("Y-m-t 23:59:59"));
+        //本月采购单
+        $model = PurchaseOrder::Clear($user,$search);
+        $list = $model->where('del_time',0)
+            ->where('state', PurchaseOrder::STATE_Four)
+            ->where('crt_time','>=',$startStamp)
+            ->where('crt_time','<=',$endStamp)
+            ->select('id')
+            ->get()->toArray();
+        if(empty($list)) return $return;
+        //本月采购产品
+        $purchase_product_array = [];
+        $purchase_product = PurchaseOrderInfo::where('del_time',0)
+            ->whereIn('product_id',$product)
+            ->whereIn('purchase_order_id',array_column($list,'id'))
+            ->select('product_id','number','price')
+            ->get()->toArray();
+        foreach ($purchase_product as $value){
+            $total = bcmul($value['number'],$value['price'],2);
+            if(isset($purchase_product_array[$value['product_id']])){
+                $purchase_product_array[$value['product_id']]['number'] += $value['number'];
+                $total_tmp = bcadd($purchase_product_array[$value['product_id']]['total'], $total, 2);
+                $purchase_product_array[$value['product_id']]['total'] = $total_tmp;
+            }else{
+                $purchase_product_array[$value['product_id']] = [
+                    'number' => $value['number'],
+                    'total' => $total,
+                ];
+            }
+        }
+
+        //本月退货(采购)
+        $model2 = ReturnExchangeOrder::Clear($user, $search);
+        $return_list = $model2->where('del_time',0)
+            ->where('state', ReturnExchangeOrder::State_two)
+            ->where('type',ReturnExchangeOrder::Order_type2)
+            ->where('crt_time','>=',$startStamp)
+            ->where('crt_time','<=',$endStamp)
+            ->select('id')
+            ->get()->toArray();
+        //本月退货产品
+        $return_product_array = [];
+        if(! empty($return_list)){
+            $return_product = ReturnExchangeOrderProductInfo::where('del_time',0)
+                ->where('return_exchange_id', array_column($return_list, 'id'))
+                ->whereIn('product_id',$product)
+                ->where('return_or_exchange',ReturnExchangeOrderProductInfo::type_one)
+                ->select('product_id','number','return_or_exchange')
+                ->get()->toArray();
+            foreach ($return_product as $value){
+                $total = bcmul($value['number'],$value['return_or_exchange'],2);
+                if(isset($return_product_array[$value['product_id']])){
+                    $return_product_array[$value['product_id']]['number'] += $value['number'];
+                    $total_tmp = bcadd($return_product_array[$value['product_id']]['total'], $total, 2);
+                    $return_product_array[$value['product_id']]['total'] = $total_tmp;
+                }else{
+                    $return_product_array[$value['product_id']] = [
+                        'number' => $value['number'],
+                        'total' => $total,
+                    ];
+                }
+            }
+        }
+
+        foreach ($return_product_array as $p => $n){
+            $number_tmp = -$n['number'];
+            $total_tmp = -$n['total'];
+            $purchase_product_tmp = $purchase_product_array[$p] ?? [];
+            if(empty($purchase_product_tmp)){
+                $purchase_product_array[$p] = [
+                    'number' => $number_tmp,
+                    'total' => $total_tmp,
+                ];
+            }else{
+                $purchase_product_array[$p]['number'] += $number_tmp;
+                $total_tmp2 = bcadd($purchase_product_array[$p]['total'], $total_tmp, 2);
+                $purchase_product_array[$p]['total'] += $total_tmp2;
+            }
+        }
+
+        return $purchase_product_array;
+    }
+
+    public function getThisMonthOut($product = [], $user = [], $search = []){
+
+    }
 }

+ 0 - 30
phpunit.xml

@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
-         bootstrap="vendor/autoload.php"
-         colors="true">
-    <testsuites>
-        <testsuite name="Unit">
-            <directory suffix="Test.php">./tests/Unit</directory>
-        </testsuite>
-
-        <testsuite name="Feature">
-            <directory suffix="Test.php">./tests/Feature</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist processUncoveredFilesFromWhitelist="true">
-            <directory suffix=".php">./app</directory>
-        </whitelist>
-    </filter>
-    <php>
-        <server name="APP_ENV" value="testing"/>
-        <server name="BCRYPT_ROUNDS" value="4"/>
-        <server name="CACHE_DRIVER" value="array"/>
-        <server name="DB_CONNECTION" value="sqlite"/>
-        <server name="DB_DATABASE" value=":memory:"/>
-        <server name="MAIL_DRIVER" value="array"/>
-        <server name="QUEUE_CONNECTION" value="sync"/>
-        <server name="SESSION_DRIVER" value="array"/>
-    </php>
-</phpunit>

+ 1 - 0
routes/api.php

@@ -277,6 +277,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
 
     //统计
     $route->any('statisticsXs', 'Api\StatisticsController@statisticsXs');
+    $route->any('statisticsJc', 'Api\StatisticsController@statisticsJc');
 
     //设置开关
     $route->any('productInventorySet', 'Api\ProductInventoryController@productInventorySet');