Browse Source

fix:改拉取计划逻辑

lucky 7 months ago
parent
commit
6452191fe0
100 changed files with 7044 additions and 198 deletions
  1. 277 20
      LICENSE
  2. BIN
      lib/DmJdbcDriver18.jar
  3. BIN
      lib/k3cloud-webapi-sdk8.0.6.jar
  4. 24 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/TetsContro.java
  5. 23 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/Yx.java
  6. 3 3
      zkqy-admin/src/main/resources/application-druid.yml
  7. 3 3
      zkqy-admin/src/main/resources/application.yml
  8. 1 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/DetailsOfTheRefuelingPlanSpinningController.java
  9. 29 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java
  10. 26 5
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/AmmunitionPlanInformationIntermediateTableServiceImpl.java
  11. 25 1
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanSpinningServiceImpl.java
  12. 12 6
      zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml
  13. 12 20
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/MaterialRetentionLogController.java
  14. 44 16
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationController.java
  15. 10 12
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/StationInformationController.java
  16. 81 18
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java
  17. 12 4
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationMapper.java
  18. 1 6
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java
  19. 20 3
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationService.java
  20. 1 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IStationInformationService.java
  21. 33 11
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationServiceImpl.java
  22. 35 16
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java
  23. 1 0
      zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml
  24. 1 1
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationFirstMapper.xml
  25. 52 32
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml
  26. 0 1
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java
  27. 36 15
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/WrappingNode.java
  28. 2 2
      zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml
  29. 2 2
      zkqy-ui/.env.development
  30. 0 0
      zkqy-ui/a
  31. BIN
      zkqy-ui/dist.zip
  32. BIN
      zkqy-ui/eec79d673c5ea6f7b1981f74d7c0555.png
  33. 6144 0
      zkqy-ui/fjqydb1205.sql
  34. 110 0
      zkqy-ui/fjqyhmc111.sql
  35. BIN
      zkqy-ui/public/favicon.ico
  36. BIN
      zkqy-ui/public/favicon1.ico
  37. BIN
      zkqy-ui/public/favicon2.ico
  38. 24 0
      zkqy-ui/src/api/amichi/ringScanInformation/index.js
  39. BIN
      zkqy-ui/src/assets/401_images/401.gif
  40. BIN
      zkqy-ui/src/assets/404_images/404.png
  41. BIN
      zkqy-ui/src/assets/404_images/404_cloud.png
  42. BIN
      zkqy-ui/src/assets/images/R-C.jfif
  43. BIN
      zkqy-ui/src/assets/images/background.jpg
  44. BIN
      zkqy-ui/src/assets/images/background1.jpg
  45. BIN
      zkqy-ui/src/assets/images/background2.jpg
  46. BIN
      zkqy-ui/src/assets/images/comlo.png
  47. BIN
      zkqy-ui/src/assets/images/comlogo.png
  48. BIN
      zkqy-ui/src/assets/images/comp.png
  49. BIN
      zkqy-ui/src/assets/images/login-background.jpg
  50. BIN
      zkqy-ui/src/assets/images/mec_logo.png
  51. BIN
      zkqy-ui/src/assets/images/mec_logo1.png
  52. BIN
      zkqy-ui/src/assets/images/mec_logo_login.png
  53. BIN
      zkqy-ui/src/assets/images/mecos-logo1.jpg
  54. BIN
      zkqy-ui/src/assets/images/mecos-logo1bak2.jpg
  55. BIN
      zkqy-ui/src/assets/images/mes412.png
  56. BIN
      zkqy-ui/src/assets/images/one.jpg
  57. BIN
      zkqy-ui/src/assets/images/profile.jpg
  58. BIN
      zkqy-ui/src/assets/logo/logo.png
  59. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI001.png
  60. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_01.png
  61. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_02.png
  62. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_03.png
  63. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_04.png
  64. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_05.png
  65. BIN
      zkqy-ui/src/assets/operationInstructionimgs/OI_012_06.png
  66. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx1.png
  67. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx2.png
  68. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx3.png
  69. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx4.png
  70. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx5.png
  71. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx6.png
  72. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx7.png
  73. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx8.png
  74. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzqx9.png
  75. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx1.png
  76. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx2.png
  77. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx3.png
  78. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx4.png
  79. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx5.png
  80. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dztx6.png
  81. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz1.png
  82. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz2.png
  83. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz3.png
  84. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz4.png
  85. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz5.png
  86. BIN
      zkqy-ui/src/assets/operationInstructionimgs/dzyz6.png
  87. BIN
      zkqy-ui/src/assets/operationInstructionimgs/footerLogo.png
  88. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic1.png
  89. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic2.png
  90. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic3.png
  91. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic4.png
  92. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic5.png
  93. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic6.png
  94. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic7.png
  95. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic8.png
  96. BIN
      zkqy-ui/src/assets/operationInstructionimgs/pic9.png
  97. BIN
      zkqy-ui/src/assets/operationInstructionimgs/qdp1.png
  98. BIN
      zkqy-ui/src/assets/operationInstructionimgs/qdp2.png
  99. BIN
      zkqy-ui/src/assets/operationInstructionimgs/qdp3.png
  100. BIN
      zkqy-ui/src/assets/operationInstructionimgs/qdp4.png

+ 277 - 20
LICENSE

@@ -1,20 +1,277 @@
-The MIT License (MIT)
-
-Copyright (c) 2018 RuoYi
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+Eclipse Public License - v 2.0
+
+    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+    PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+    OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+  a) in the case of the initial Contributor, the initial content
+     Distributed under this Agreement, and
+
+  b) in the case of each subsequent Contributor:
+     i) changes to the Program, and
+     ii) additions to the Program;
+  where such changes and/or additions to the Program originate from
+  and are Distributed by that particular Contributor. A Contribution
+  "originates" from a Contributor if it was added to the Program by
+  such Contributor itself or anyone acting on such Contributor's behalf.
+  Contributions do not include changes or additions to the Program that
+  are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+  a) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free copyright
+  license to reproduce, prepare Derivative Works of, publicly display,
+  publicly perform, Distribute and sublicense the Contribution of such
+  Contributor, if any, and such Derivative Works.
+
+  b) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free patent
+  license under Licensed Patents to make, use, sell, offer to sell,
+  import and otherwise transfer the Contribution of such Contributor,
+  if any, in Source Code or other form. This patent license shall
+  apply to the combination of the Contribution and the Program if, at
+  the time the Contribution is added by the Contributor, such addition
+  of the Contribution causes such combination to be covered by the
+  Licensed Patents. The patent license shall not apply to any other
+  combinations which include the Contribution. No hardware per se is
+  licensed hereunder.
+
+  c) Recipient understands that although each Contributor grants the
+  licenses to its Contributions set forth herein, no assurances are
+  provided by any Contributor that the Program does not infringe the
+  patent or other intellectual property rights of any other entity.
+  Each Contributor disclaims any liability to Recipient for claims
+  brought by any other entity based on infringement of intellectual
+  property rights or otherwise. As a condition to exercising the
+  rights and licenses granted hereunder, each Recipient hereby
+  assumes sole responsibility to secure any other intellectual
+  property rights needed, if any. For example, if a third party
+  patent license is required to allow Recipient to Distribute the
+  Program, it is Recipient's responsibility to acquire that license
+  before distributing the Program.
+
+  d) Each Contributor represents that to its knowledge it has
+  sufficient copyright rights in its Contribution, if any, to grant
+  the copyright license set forth in this Agreement.
+
+  e) Notwithstanding the terms of any Secondary License, no
+  Contributor makes additional grants to any Recipient (other than
+  those set forth in this Agreement) as a result of such Recipient's
+  receipt of the Program under the terms of a Secondary License
+  (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+  a) the Program must also be made available as Source Code, in
+  accordance with section 3.2, and the Contributor must accompany
+  the Program with a statement that the Source Code for the Program
+  is available under this Agreement, and informs Recipients how to
+  obtain it in a reasonable manner on or through a medium customarily
+  used for software exchange; and
+
+  b) the Contributor may Distribute the Program under a license
+  different than this Agreement, provided that such license:
+     i) effectively disclaims on behalf of all other Contributors all
+     warranties and conditions, express and implied, including
+     warranties or conditions of title and non-infringement, and
+     implied warranties or conditions of merchantability and fitness
+     for a particular purpose;
+
+     ii) effectively excludes on behalf of all other Contributors all
+     liability for damages, including direct, indirect, special,
+     incidental and consequential damages, such as lost profits;
+
+     iii) does not attempt to limit or alter the recipients' rights
+     in the Source Code under section 3.2; and
+
+     iv) requires any subsequent distribution of the Program by any
+     party to be under a license that satisfies the requirements
+     of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+  a) it must be made available under this Agreement, or if the
+  Program (i) is combined with other material in a separate file or
+  files made available under a Secondary License, and (ii) the initial
+  Contributor attached to the Source Code the notice described in
+  Exhibit A of this Agreement, then the Program may be made available
+  under the terms of such Secondary Licenses, and
+
+  b) a copy of this Agreement must be included with each copy of
+  the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+  Simply including a copy of this Agreement, including this Exhibit A
+  is not sufficient to license the Source Code under Secondary Licenses.
+
+  If it is not possible or desirable to put the notice in a particular
+  file, then You may include the notice in a location (such as a LICENSE
+  file in a relevant directory) where a recipient would be likely to
+  look for such a notice.
+
+  You may add additional accurate notices of copyright ownership.

BIN
lib/DmJdbcDriver18.jar


BIN
lib/k3cloud-webapi-sdk8.0.6.jar


+ 24 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/TetsContro.java

@@ -0,0 +1,24 @@
+package com.zkqy.web.controller;
+
+import com.zkqy.common.annotation.Anonymous;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/admin")
+public class TetsContro {
+
+    @PostMapping("/test")
+    @Anonymous
+    public String test(@RequestBody Yx yx) {
+        System.out.println(yx);
+        return "hello";
+    }
+
+    @GetMapping("/test2")
+    @Anonymous
+    public String test2(Yx yx) {
+        System.out.println(yx);
+        return "hello";
+    }
+
+}

+ 23 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/Yx.java

@@ -0,0 +1,23 @@
+package com.zkqy.web.controller;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class Yx {
+
+    private String name;
+
+    private  String age;
+
+    private  String desc;
+
+    private List<Yx> rows;
+}

+ 3 - 3
zkqy-admin/src/main/resources/application-druid.yml

@@ -6,13 +6,13 @@ spring:
         druid:
             # 主库数据源 http:///
             master:
-                url: jdbc:mysql://192.168.2.135:3307/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+                url: jdbc:mysql://localhost:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 #url: jdbc:mysql://192.168.110.15:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 #url: jdbc:mysql://121.37.234.37:3306/zkqyzk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 username: root
                 #password: zkqy8888
-#                password: root
-                password: quanyi666
+                password: root
+                #password: quanyi666
 #                password: zkqy123456,
                 #password: zkqy@8888888
             # 从库数据源

+ 3 - 3
zkqy-admin/src/main/resources/application.yml

@@ -201,12 +201,12 @@ projectDownloadZip:
 OpenAuthorization2:
   MES:
     # 单点获取code、token、userinfo主机地址
-    URL: http://192.168.2.190:8066/oauth2
+    URL: http://192.168.110.83:8066/oauth2
     # 系统标识
     BASIC: mes
     # 重定向本系统主机地址
-    REDIRECT_URL: http://192.168.2.190:1025
+    REDIRECT_URL: http://192.168.110.83:1025
     # 回调地址
-    CALLBACK: http://192.168.2.190:8066/oauth/callback
+    CALLBACK: http://192.168.110.83:8066/oauth/callback
     #
     NAME: hmc

+ 1 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/DetailsOfTheRefuelingPlanSpinningController.java

@@ -36,6 +36,7 @@ import com.zkqy.common.core.page.TableDataInfo;
 @RequestMapping("/system/spinning")
 @Api(value = "/system/spinning", description = "纺丝计划详细信息-接口")
 public class DetailsOfTheRefuelingPlanSpinningController extends BaseController {
+
     @Autowired
     private IDetailsOfTheRefuelingPlanSpinningService detailsOfTheRefuelingPlanSpinningService;
 

+ 29 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java

@@ -77,6 +77,26 @@ public class SaleProducts extends BaseEntity
     @Excel(name = "流程编码")
     private String processKey;
 
+
+    /** 产线集合 */
+    @Excel(name = "产线集合")
+    private String productsLineNoArry;
+
+
+
+
+    /** 产线集合id */
+    @Excel(name = "产线集合id")
+    private String productsLineNoArryId;
+
+    public String getProductsLineNoArryId() {
+        return productsLineNoArryId;
+    }
+
+    public void setProductsLineNoArryId(String productsLineNoArryId) {
+        this.productsLineNoArryId = productsLineNoArryId;
+    }
+
     /** 状态 */
     @Excel(name = "状态")
     private String status;
@@ -107,6 +127,8 @@ public class SaleProducts extends BaseEntity
     @Excel(name = "色泽")
     private String colours;
 
+
+
     public String getColours() {
         return colours;
     }
@@ -209,6 +231,13 @@ public class SaleProducts extends BaseEntity
         this.productAmounts = productAmounts;
     }
 
+    public String getProductsLineNoArry() {
+        return productsLineNoArry;
+    }
+
+    public void setProductsLineNoArry(String productsLineNoArry) {
+        this.productsLineNoArry = productsLineNoArry;
+    }
     public String getProductAmounts() 
     {
         return productAmounts;

+ 26 - 5
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/AmmunitionPlanInformationIntermediateTableServiceImpl.java

@@ -72,9 +72,32 @@ public class AmmunitionPlanInformationIntermediateTableServiceImpl implements IA
             }
             saleProducts.setOnBoardState(item.getPlanStatus()); //产品状态
             saleProducts.setLotNumber(item.getCurrentLotNumber());//批号
-            saleProducts.setProductNumber(Double.valueOf(item.getNumber()));//数量
+//            saleProducts.setProductNumber(Double.valueOf(item.getNumber()));//数量
             saleProducts.setColourNumber(item.getColourNumber());//色号编码
-            SaleProducts saleProducts1 = saleProductsMapper.selectSaleProductsById(Long.valueOf(item.getProductId()));//插叙对应产品信息
+            SaleProducts saleProducts1 = saleProductsMapper.selectSaleProductsById(Long.valueOf(item.getProductId()));//查询对应产品信息
+            String productsLineNoArry = saleProducts1.getProductsLineNoArry();
+            String productsLineNoArryId = saleProducts1.getProductsLineNoArryId();
+            if(StringUtils.isNotEmpty(productsLineNoArry)){
+                String[] split = productsLineNoArry.split("/");
+
+                List<String> list = Stream.of(split).collect(Collectors.toList());
+                if(list.contains(item.getMachineId())){
+                    saleProducts.setProductsLineNoArry(productsLineNoArry);
+                    saleProducts.setProductsLineNoArryId(saleProducts1.getProductsLineNoArryId());
+                }else {
+                    String[] split2 = productsLineNoArryId.split(",");
+                    List<String> list2 = Stream.of(split2).collect(Collectors.toList());
+                    list.add(item.getMachineId());//加入新的机台
+                    list2.add(item.getMacId());
+                    String collect = list.stream().collect(Collectors.joining("/"));
+                    String collect2 = list2.stream().collect(Collectors.joining(","));
+                    saleProducts.setProductsLineNoArryId(collect2);
+                    saleProducts.setProductsLineNoArry(collect);
+                }
+            }else {
+                saleProducts.setProductsLineNoArryId(item.getMacId());
+                saleProducts.setProductsLineNoArry(item.getMachineId());
+            }
             item.setProductTypeName(saleProducts1.getProductName());
             saleProducts.setTaskName(saleProducts1.getProductName()+"-"+item.getCurrentColorCode()); //产品的任务名称
             item.setProductTypeName(saleProducts1.getProductName());
@@ -90,12 +113,10 @@ public class AmmunitionPlanInformationIntermediateTableServiceImpl implements IA
             //产品号
             String productNo = saleProducts1.getProductNo();//产品编号
             //数量为0的
-            String  number="0";
             SaleProducts saleProducts2=new SaleProducts();
             saleProducts2.setColours(colours);
             saleProducts2.setSaleOrderNo(saleOrderNo);
             saleProducts2.setProductNo(productNo);
-            saleProducts2.setProductNumber(0.0);
 
             //原来的批号
             String lotNumber = item.getCurrentLotNumber();
@@ -369,7 +390,7 @@ public class AmmunitionPlanInformationIntermediateTableServiceImpl implements IA
     @Override
     public List<DetailsOfTheRefuelingPlan> getAllPlanListByProductType(DetailsOfTheRefuelingPlan detailsOfTheRefuelingPlan) {
         DetailsOfTheRefuelingPlan detailsOfTheRefuelingPlan3 = new DetailsOfTheRefuelingPlan();
-        detailsOfTheRefuelingPlan3.setMachineId(detailsOfTheRefuelingPlan.getMacId());//产线号
+        detailsOfTheRefuelingPlan3.setMacId(detailsOfTheRefuelingPlan.getMacId());//产线id
         detailsOfTheRefuelingPlan3.setProductType(detailsOfTheRefuelingPlan.getProductType());//类型
         detailsOfTheRefuelingPlan3.setPlanStatus(detailsOfTheRefuelingPlan.getPlanStatus());//状态
         List<DetailsOfTheRefuelingPlan> detailsOfTheRefuelingPlans3 = detailsOfTheRefuelingPlanMapper.selectDetailsOfTheRefuelingPlanListDetiles(detailsOfTheRefuelingPlan3);

+ 25 - 1
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanSpinningServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.DetailsOfTheRefuelingPlanSpinningRVo;
@@ -299,6 +300,29 @@ public class DetailsOfTheRefuelingPlanSpinningServiceImpl implements IDetailsOfT
 
             //产品对应的信息
             SaleProducts saleProducts1 = saleProductsMapper.selectSaleProductsById(Long.valueOf(item.getProductId()));
+            String productsLineNoArry = saleProducts1.getProductsLineNoArry();
+            String productsLineNoArryId = saleProducts1.getProductsLineNoArryId();
+            if(StringUtils.isNotEmpty(productsLineNoArry)){
+                String[] split = productsLineNoArry.split("/");
+
+                List<String> list = Stream.of(split).collect(Collectors.toList());
+                if(list.contains(item.getMachineId())){
+                    saleProducts.setProductsLineNoArry(productsLineNoArry);
+                    saleProducts.setProductsLineNoArryId(saleProducts1.getProductsLineNoArryId());
+                }else {
+                    String[] split2 = productsLineNoArryId.split(",");
+                    List<String> list2 = Stream.of(split2).collect(Collectors.toList());
+                    list.add(item.getMachineId());//加入新的机台
+                    list2.add(item.getMacId());
+                    String collect = list.stream().collect(Collectors.joining("/"));
+                    String collect2 = list2.stream().collect(Collectors.joining(","));
+                    saleProducts.setProductsLineNoArryId(collect2);
+                    saleProducts.setProductsLineNoArry(collect);
+                }
+            }else {
+                saleProducts.setProductsLineNoArryId(item.getMacId());
+                saleProducts.setProductsLineNoArry(item.getMachineId());
+            }
             saleProducts.setTaskName(saleProducts1.getProductName()+"-"+item.getCurrentColorCode());
             //产品对应的信息
             item.setProductTypeName(saleProducts1.getProductName());
@@ -320,7 +344,7 @@ public class DetailsOfTheRefuelingPlanSpinningServiceImpl implements IDetailsOfT
             saleProducts2.setColours(colours);
             saleProducts2.setSaleOrderNo(saleOrderNo);
             saleProducts2.setProductNo(productNo);
-            saleProducts2.setProductNumber(0.0);
+//            saleProducts2.setProductNumber(0.0);
             //原来的批号
             String lotNumber = item.getCurrentLotNumber().toString();
             saleProducts2.setLotNumber(lotNumber);

+ 12 - 6
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -34,6 +34,8 @@
         <result property="lotNumber" column="lot_number"/>
         <result property="onBoardState" column="on_board_state"/>
         <result property="colours" column="colours"/>
+        <result property="productsLineNoArry" column="products_line_no_arry"></result>
+        <result property="productsLineNoArryId" column="products_line_no_arry_id"></result>
     </resultMap>
 
     <resultMap type="com.zkqy.business.domain.vo.SaleProductsVo" id="SaleProductsResultAndCustomInfo">
@@ -98,7 +100,9 @@
                task_name,
                lot_number,
                on_board_state,
-               colours
+               colours,
+               products_line_no_arry,
+               products_line_no_arry_id
         from {DBNAME}.sale_products
     </sql>
 
@@ -350,12 +354,13 @@
         <foreach collection="list" item="item" index="index" open="" close="" separator=";">
             update {DBNAME}.sale_products
             <set>
-                production_line_no=#{item.productionLineNo},
+                production_line_no= #{item.productionLineNo},
+                products_line_no_arry= #{item.productsLineNoArry},
+                products_line_no_arry_id= #{item.productsLineNoArryId},
                 lot_number=#{item.lotNumber},
                 on_board_state=#{item.onBoardState},
-                product_number=#{item.productNumber},
                 colour_number = #{item.colourNumber},
-                task_name=#{item.taskName},
+                task_name=#{item.taskName}
             </set>
             where id = #{item.id}
         </foreach>
@@ -364,11 +369,12 @@
         update {DBNAME}.sale_products
         set
             production_line_no=#{productionLineNo},
+            products_line_no_arry=#{productsLineNoArry},
+            products_line_no_arry_id=#{productsLineNoArryId},
             lot_number=#{lotNumber},
             colour_number = #{colourNumber},
             task_name=#{taskName},
-            on_board_state=#{onBoardState},
-            product_number=#{productNumber}
+            on_board_state=#{onBoardState}
         where id = #{id}
     </update>
     <update id="updateSaleProductsNull">

+ 12 - 20
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/MaterialRetentionLogController.java

@@ -1,26 +1,18 @@
 package com.zkqy.amichi.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
+import com.zkqy.amichi.domain.MaterialRetentionLog;
+import com.zkqy.amichi.service.IMaterialRetentionLogService;
 import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.core.page.TableDataInfo;
 import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.utils.poi.ExcelUtil;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zkqy.amichi.domain.MaterialRetentionLog;
-import com.zkqy.amichi.service.IMaterialRetentionLogService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 扫码扣料日志Controller
@@ -38,7 +30,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 查询扫码扣料日志列表
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:list')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:list')")
     @GetMapping("/list")
     public TableDataInfo list(MaterialRetentionLog materialRetentionLog)
     {
@@ -50,7 +42,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 导出扫码扣料日志列表
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:export')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:export')")
     @Log(title = "扫码扣料日志", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, MaterialRetentionLog materialRetentionLog)
@@ -63,7 +55,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 获取扫码扣料日志详细信息
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:query')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id)
     {
@@ -73,7 +65,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 新增扫码扣料日志
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:add')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:add')")
     @Log(title = "扫码扣料日志", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody MaterialRetentionLog materialRetentionLog)
@@ -84,7 +76,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 修改扫码扣料日志
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:edit')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:edit')")
     @Log(title = "扫码扣料日志", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody MaterialRetentionLog materialRetentionLog)
@@ -95,7 +87,7 @@ public class MaterialRetentionLogController extends BaseController
     /**
      * 删除扫码扣料日志
      */
-    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:remove')")
+//    @PreAuthorize("@ss.hasPermi('materialRetentionLog:log:remove')")
     @Log(title = "扫码扣料日志", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids)

+ 44 - 16
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationController.java

@@ -1,15 +1,9 @@
 package com.zkqy.amichi.controller;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletResponse;
-
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.zkqy.amichi.domain.GenerateEmployeeVo;
+import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.domain.RingScanInformationFirst;
 import com.zkqy.amichi.domain.StationInformation;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
@@ -23,21 +17,23 @@ import com.zkqy.amichi.service.IRingScanInformationService;
 import com.zkqy.amichi.utils.MaUtils;
 import com.zkqy.common.annotation.Anonymous;
 import com.zkqy.common.annotation.Log;
-import com.zkqy.common.constant.HttpStatus;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
-import com.zkqy.common.core.domain.R;
-import com.zkqy.common.core.domain.entity.SysUser;
 import com.zkqy.common.core.page.TableDataInfo;
 import com.zkqy.common.enums.BusinessType;
-import com.zkqy.common.utils.PageUtils;
 import com.zkqy.common.utils.StringUtils;
 import com.zkqy.common.utils.poi.ExcelUtil;
 import com.zkqy.system.mapper.SysUserMapper;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import com.zkqy.amichi.domain.RingScanInformation;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -257,6 +253,38 @@ public class RingScanInformationController extends BaseController
         return AjaxResult.success("查询成功",stringListMap).put("total",total);
     }
 
+    @Anonymous
+    @GetMapping("/info/scanCodeMonitoringLogs3")
+    public AjaxResult  scanCodeMonitoringLogs3(RingScanInformationQueryVo ringScanInformationQueryVo)
+    {
+        startPage();
+        RingScanInformationFirst ringScanInformationFirst=new RingScanInformationFirst();
+        ringScanInformationFirst.setStatus(ringScanInformationQueryVo.getStatus());
+        if(StringUtils.isNotNull(ringScanInformationQueryVo.getOrderNumber())){
+            ringScanInformationFirst.setOrderNumber(ringScanInformationQueryVo.getOrderNumber());
+        }
+        //分页数据
+        List<RingScanInformationFirst> ringScanInformationFirsts = ringScanInformationFirstMapper.selectRingScanInformationFirstList(ringScanInformationFirst);
+        if(ringScanInformationFirsts.size()<=0){
+            Map<String, List<RingScanInformationLogVo>> stringListMap=new HashMap<>();
+            return AjaxResult.success("查询成功",stringListMap).put("total",0);
+        }
+        List<String> orderNumberListString = ringScanInformationFirsts.parallelStream().map(RingScanInformationFirst::getProductionOrderNumber).collect(Collectors.toList());
+
+        Map<String, List<RingScanInformationLogVo>> stringListMap = ringScanInformationService.selectRingScanInformationLog3(orderNumberListString);
+        //总条数
+        long total = new PageInfo(ringScanInformationFirsts).getTotal();
+        //分页数据返回
+        return AjaxResult.success("查询成功",stringListMap).put("total",total);
+    }
+
+
+    @Anonymous
+    @GetMapping("/info/scanCodeLogOrderInfo")
+    public TableDataInfo  scanCodeLogOrderInfo(RingScanInformationQueryVo ringScanInformationQueryVo){
+       startPage();
+       return    getDataTable(ringScanInformationService.scanCodeLogOrderInfo(ringScanInformationQueryVo));
+    }
 
     @Anonymous
     @GetMapping("/info/scanCodeMonitoringLogs2")
@@ -274,7 +302,7 @@ public class RingScanInformationController extends BaseController
             Map<String, List<RingScanInformationLogVo>> stringListMap=new HashMap<>();
             return AjaxResult.success("查询成功",stringListMap).put("total",0);
         }
-        List<String> orderNumberListString = ringScanInformationFirsts.parallelStream().map(RingScanInformationFirst::getProductionOrderNumber).collect(Collectors.toList());
+        List<String> orderNumberListString = ringScanInformationFirsts.parallelStream().map(RingScanInformationFirst::getOrderNumber).collect(Collectors.toList());
 
         Map<String, List<RingScanInformationLogVo>> stringListMap = ringScanInformationService.selectRingScanInformationLog2(orderNumberListString);
         //总条数
@@ -297,7 +325,7 @@ public class RingScanInformationController extends BaseController
      * 导出指环王扫描日志信息列表
      */
     @PreAuthorize("@ss.hasPermi('ringScanInformation:information:export')")
-    @Log(title = "指环王扫描日志信息", businessType = BusinessType.EXPORT)
+    @Log(title = "工序扫描日志", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, RingScanInformation ringScanInformation)
     {
@@ -309,7 +337,7 @@ public class RingScanInformationController extends BaseController
 //            return item;
 //        }).collect(Collectors.toList());
         ExcelUtil<RingScanInformationVo> util = new ExcelUtil<RingScanInformationVo>(RingScanInformationVo.class);
-        util.exportExcel(response, list, "指环王扫描日志信息数据");
+        util.exportExcel(response, list, "工序扫描日志");
     }
 
     /**

+ 10 - 12
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/StationInformationController.java

@@ -1,23 +1,22 @@
 package com.zkqy.amichi.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
 import com.zkqy.amichi.domain.StationInformation;
 import com.zkqy.amichi.domain.vo.StationProductScanningRingVo;
+import com.zkqy.amichi.service.IStationInformationService;
 import com.zkqy.common.annotation.Anonymous;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.core.page.TableDataInfo;
 import com.zkqy.common.enums.BusinessType;
-import com.zkqy.amichi.service.IStationInformationService;
 import com.zkqy.common.utils.poi.ExcelUtil;
-import com.zkqy.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 工位信息Controller
@@ -78,8 +77,7 @@ public class StationInformationController extends BaseController
     @Anonymous
     @PostMapping("/stationProductScanningTwo")
     @ApiOperation(value = "手持扫描")
-    public String stationProductScanningTwo(@RequestParam("contentString") String contentString)
-    {
+    public String stationProductScanningTwo(@RequestParam("contentString") String contentString) throws Exception {
         return stationInformationService.stationProductScanningTwo2(contentString);
     }
 

+ 81 - 18
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java

@@ -1,22 +1,13 @@
 package com.zkqy.amichi.jd.service.impl;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
 import com.alibaba.fastjson2.JSON;
 import com.kingdee.bos.webapi.sdk.K3CloudApi;
 import com.zkqy.amichi.domain.PlanTaskDetails;
-import com.zkqy.amichi.domain.ProductionCardFlow;
 import com.zkqy.amichi.domain.ProductionPlanningManagement;
-import com.zkqy.amichi.jd.domain.JdMaterialInfoVo;
+import com.zkqy.amichi.jd.domain.JdProductionOrder;
 import com.zkqy.amichi.jd.domain.ProductionCardFlowVo;
-import com.zkqy.amichi.mapper.MaterialBaseInfoMapper;
+import com.zkqy.amichi.jd.mapper.JdProductionOrderMapper;
+import com.zkqy.amichi.jd.service.JdProductionOrderService;
 import com.zkqy.amichi.mapper.PlanTaskDetailsMapper;
 import com.zkqy.amichi.mapper.ProductionCardFlowMapper;
 import com.zkqy.amichi.mapper.ProductionPlanningManagementMapper;
@@ -26,13 +17,13 @@ import com.zkqy.common.core.redis.RedisCache;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
-import com.zkqy.amichi.jd.mapper.JdProductionOrderMapper;
-import com.zkqy.amichi.jd.domain.JdProductionOrder;
-import com.zkqy.amichi.jd.service.JdProductionOrderService;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 金蝶-生产订单信息Service业务层处理
@@ -177,15 +168,20 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 List<JdProductionOrder> jdProductionOrders = JSON.parseArray(resultJson, JdProductionOrder.class);
                 //查询系统中的订单信息
                 ProductionPlanningManagement productionPlanningManagement1 = new ProductionPlanningManagement();
-                productionPlanningManagement1.setIsWeldSheet("1");
+                productionPlanningManagement1.setIsWeldSheet("1");//1 标识为普通订单
                 List<ProductionPlanningManagement> productionPlanningManagements = productionPlanningManagementMapper.selectProductionPlanningManagementList(productionPlanningManagement1);
+                //拿到所有订单号
                 List<String> collectTwo = productionPlanningManagements.stream().map(ProductionPlanningManagement::getOrderNumber).collect(Collectors.toSet())
                         .stream().collect(Collectors.toList());
 
+                //对比分析(过滤出来MES系统中不存在的订单)
                 Map<String, List<JdProductionOrder>> groupedByDemandDocument = jdProductionOrders.stream()
                         .filter(item -> !collectTwo.contains(item.getDemandDocument()))
                         .collect(Collectors.groupingBy(JdProductionOrder::getDemandDocument));
 
+                //做一个map用户存订单和计划的对应关系
+                HashMap<String,String> mapGX = new HashMap<>();
+                //如果有数据
                 if (groupedByDemandDocument.size() > 0) {
                     //订单循环
                     groupedByDemandDocument.forEach((k, v) -> {
@@ -237,6 +233,10 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                 PlanTaskDetails planTaskDetails = new PlanTaskDetails();
                                 planTaskDetails.setDemandDocument(a.getDocumentNumber());//需求单据号
                                 planTaskDetails.setPlanId(productionPlanningManagement.getId());//计划id
+
+                                //订单号 ----计划id
+                                mapGX.put(a.getDemandDocument(),productionPlanningManagement.getId().toString());
+
                                 planTaskDetails.setMaterialId(a.getMaterialCode());//原材料编码
                                 planTaskDetails.setMaterialName(a.getMaterialName());//名称
                                 planTaskDetails.setQuantity(a.getQuantity());//数量
@@ -291,6 +291,69 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                         }
                     });
                 }
+                //更新生产订单数据(能走到这里说明数据拉取成功-存在MES中有订单信息,但是订单信息不全的可能)
+                //查询所有生产订单
+                PlanTaskDetails planTaskDetails=new PlanTaskDetails();
+                List<PlanTaskDetails> planTaskDetails1 = planTaskDetailsMapper.selectPlanTaskDetailsList(planTaskDetails);
+                //生产订单号集合
+                Set<String> collectA = planTaskDetails1.stream().map(PlanTaskDetails::getDemandDocument).collect(Collectors.toSet());
+                //拿到MES系统中不存在的生产订单
+                List<JdProductionOrder> collect = jdProductionOrders.stream().filter(item -> !collectA.contains(item.getDemandDocument())).collect(Collectors.toList());
+                //生产订单循环
+                collect.forEach(a->{
+                    PlanTaskDetails planTaskDetailsAdd = new PlanTaskDetails();
+                    planTaskDetailsAdd.setDemandDocument(a.getDocumentNumber());//需求单据号
+                    String planId = mapGX.get(a.getDocumentNumber());
+                    planTaskDetailsAdd.setPlanId(Long.valueOf(planId));//计划id
+                    planTaskDetailsAdd.setMaterialId(a.getMaterialCode());//原材料编码
+                    planTaskDetailsAdd.setMaterialName(a.getMaterialName());//名称
+                    planTaskDetailsAdd.setQuantity(a.getQuantity());//数量
+                    planTaskDetailsAdd.setModelNumber(a.getModelNumber());//型号
+                    planTaskDetailsAdd.setSpecification(a.getSpecification());//规格
+                    planTaskDetailsAdd.setMaterialUnit(a.getUnit());//单位
+                    planTaskDetailsAdd.setPower(a.getGl());//功率
+                    planTaskDetailsAdd.setVoltage(a.getDianYaPinLv());//电压频率
+                    planTaskDetailsAdd.setColour(a.getYanse());//颜色
+                    planTaskDetailsAdd.setMingpai(a.getMingpai());//铭牌
+                    planTaskDetailsAdd.setShuomingshu(a.getShuomingshu());//说明书
+                    planTaskDetailsAdd.setHegezheng(a.getHegezheng());//合格证
+                    planTaskDetailsAdd.setBaozhuangxiang(a.getBaozhuangxiang());//包装箱
+                    planTaskDetailsAdd.setSwitchBox(a.getKaiguanxiang());//开关箱
+                    planTaskDetailsAdd.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
+                    planTaskDetailsAdd.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
+                    planTaskDetailsAdd.setRemark(a.getRemark());
+                    planTaskDetailsAdd.setFid(a.getFid());
+                    planTaskDetailsAdd.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                    planTaskDetailsAdd.setFbillno(a.getDocumentNumber());//生产订单号
+                    planTaskDetailsAdd.setFsrcbillno(a.getDemandDocument());//销售订单号
+                    planTaskDetailsAdd.setFunitidfNumber(a.getFunitidfNumber());//单位编号
+                    if (StringUtils.isNotNull(a.getDocumentDate())) {
+                        planTaskDetailsAdd.setTimeOfRequest(a.getDocumentDate());
+                    }
+                    planTaskDetailsAdd.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
+                    planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetailsAdd);
+
+                    //处理新增订单的序列号问题
+                    String stringQuery = "{\n" +
+                            "    \"FormId\": \"PRD_MO\",\n" +
+                            "    \"FieldKeys\": \"FBillNo,FSNQty1,FSaleOrderNo,FSerialNo\",\n" +
+                            "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\"" + a.getDocumentNumber() + "\",\"Right\":\"\",\"Logic\":0}],\n" +
+                            "    \"OrderString\": \"\",\n" +
+                            "    \"TopRowCount\": 0,\n" +
+                            "    \"StartRow\": 0,\n" +
+                            "    \"Limit\": 2000,\n" +
+                            "    \"SubSystemId\": \"\"\n" +
+                            "}";
+                    try {
+                        String xlhString = api.billQuery(stringQuery);
+                        if (!xlhString.equals("[]")) {
+                            List<ProductionCardFlowVo> mapList1 = JSON.parseArray(xlhString, ProductionCardFlowVo.class);
+                            int i = productionCardFlowMapper.insertProductionCardFlowBatchVo(mapList1);
+                        }
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                });
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }finally {

+ 12 - 4
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationMapper.java

@@ -1,15 +1,16 @@
 package com.zkqy.amichi.mapper;
 
-import java.util.List;
-import java.util.Map;
-
 import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
+import com.zkqy.amichi.domain.vo.RingScanInformationQueryVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationVo;
 import com.zkqy.amichi.domain.vo.ScanStatistics;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 指环王扫描日志信息Mapper接口
  * 
@@ -96,7 +97,7 @@ public interface RingScanInformationMapper
      *  日志信息倒推
      * @return
      */
-    List<RingScanInformationLogVo> SelectRingScanInformationLog(List<String> orderNumberListString);
+    List<RingScanInformationLogVo> selectRingScanInformationLog(List<String> orderNumberListString);
 
 
     /**
@@ -150,4 +151,11 @@ public interface RingScanInformationMapper
     String selectRingScanInfoByUserNameAndOrderNumber(@Param("uname") String uname,
                                                       @Param("dorder")String dorder,
                                                       @Param("gw")String gw);
+
+    /**
+     * 管道日志倒推订单显示
+     * @param ringScanInformationQueryVo
+     * @return
+     */
+    List<Map> scanCodeLogOrderInfo(RingScanInformationQueryVo ringScanInformationQueryVo);
 }

+ 1 - 6
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java

@@ -8,7 +8,6 @@ import com.zkqy.amichi.domain.ProductionPlanningManagement;
 import com.zkqy.amichi.jd.domain.JdMaterialBaseInfoVo;
 import com.zkqy.amichi.jd.domain.JdProductionOrder;
 import com.zkqy.amichi.jd.domain.ProductionCardFlowVo;
-import com.zkqy.amichi.jd.mapper.JdProductionOrderMapper;
 import com.zkqy.amichi.jd.service.impl.JdMaterialInfoServiceImpl;
 import com.zkqy.amichi.jd.service.impl.JdProductionOrderServiceImpl;
 import com.zkqy.amichi.mapper.MaterialBaseInfoMapper;
@@ -21,12 +20,8 @@ import com.zkqy.common.core.redis.RedisCache;
 import com.zkqy.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
 
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -72,7 +67,7 @@ public class ScheduledBean {
      * 流转卡序列号信息
      * 焊接单数据信息
      */
-    @Scheduled(cron = "0 0 0/1 * * ?", zone = "Asia/Shanghai")
+//    @Scheduled(cron = "0 0 0/1 * * ?", zone = "Asia/Shanghai")
     public void printLog1(){
         Boolean aTrue = stringRedisTemplate.opsForValue().setIfAbsent("fjqy:ptd:pulled", "true");
         if (aTrue) {

+ 20 - 3
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationService.java

@@ -1,12 +1,13 @@
 package com.zkqy.amichi.service;
 
-import java.util.List;
-import java.util.Map;
-
 import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
+import com.zkqy.amichi.domain.vo.RingScanInformationQueryVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationVo;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 指环王扫描日志信息Service接口
  * 
@@ -38,6 +39,15 @@ public interface IRingScanInformationService
      */
     Map<String, List<RingScanInformationLogVo>> selectRingScanInformationLog2(List<String> orderNumberListString);
 
+
+
+    /**
+     * 流程列表查看2
+     * @param orderNumberListString
+     * @return
+     */
+    Map<String, List<RingScanInformationLogVo>> selectRingScanInformationLog3(List<String> orderNumberListString);
+
     /**
      * 查询指环王扫描日志信息列表
      * 
@@ -122,4 +132,11 @@ public interface IRingScanInformationService
      * @return
      */
     String selectRingScanInfoByUserNameAndOrderNumber(String uname, String dorder,String gw);
+
+    /**
+     * 查询管道日志倒推订单信息
+     * @param ringScanInformationQueryVo
+     * @return
+     */
+    List<Map> scanCodeLogOrderInfo(RingScanInformationQueryVo ringScanInformationQueryVo);
 }

+ 1 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IStationInformationService.java

@@ -101,5 +101,5 @@ public interface IStationInformationService
      * @param contentString
      * @return
      */
-    String stationProductScanningTwo2(String contentString);
+    String stationProductScanningTwo2(String contentString) throws Exception;
 }

+ 33 - 11
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationServiceImpl.java

@@ -1,19 +1,19 @@
 package com.zkqy.amichi.service.impl;
 
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import com.zkqy.amichi.domain.RingScanInformationFirst;
+import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
+import com.zkqy.amichi.domain.vo.RingScanInformationQueryVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationVo;
 import com.zkqy.amichi.mapper.RingScanInformationFirstMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.zkqy.amichi.mapper.RingScanInformationMapper;
-import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.service.IRingScanInformationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 指环王扫描日志信息Service业务层处理
@@ -42,7 +42,7 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
     @Override
     public Map<String, List<RingScanInformationLogVo>> SelectRingScanInformationLog(List<String> orderNumberListString) {
         //取真实展示数据
-        List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.SelectRingScanInformationLog(orderNumberListString);
+        List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.selectRingScanInformationLog(orderNumberListString);
         //转换为map集合
         Map<String, List<RingScanInformationLogVo>> mapByOrderNumber = ringScanInformations.parallelStream()
                 .collect(Collectors.groupingBy(RingScanInformationLogVo::getOrderNumber));
@@ -58,7 +58,7 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
     @Override
     public Map<String, List<RingScanInformationLogVo>> selectRingScanInformationLog2(List<String> orderNumberListString) {
         //取真实展示数据
-        List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.selectRingScanInformationLog2(orderNumberListString);
+        List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.selectRingScanInformationLog(orderNumberListString);
         //转换为map集合
         Map<String, List<RingScanInformationLogVo>> mapByOrderNumber = ringScanInformations.stream()
                 .collect(
@@ -68,6 +68,18 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
         return mapByOrderNumber;
     }
 
+    @Override
+    public Map<String, List<RingScanInformationLogVo>> selectRingScanInformationLog3(List<String> orderNumberListString) {
+        //取真实展示数据
+        List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.selectRingScanInformationLog2(orderNumberListString);
+        //转换为map集合
+        Map<String, List<RingScanInformationLogVo>> mapByOrderNumber = ringScanInformations.stream()
+                .collect(
+                        Collectors.groupingBy(
+                                RingScanInformationLogVo::getProductionOrderNumber, LinkedHashMap::new, // 使用 LinkedHashMap 保持插入顺序
+                                Collectors.toList()));
+        return mapByOrderNumber;
+    }
 
     /**
      * 查询指环王扫描日志信息列表
@@ -155,4 +167,14 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
         return ringScanInformationMapper.selectRingScanInfoByUserNameAndOrderNumber(uname,dorder, gw);
     }
 
+    /**
+     * 管道日志倒推订单显示
+     * @param ringScanInformationQueryVo
+     * @return
+     */
+    @Override
+    public List<Map> scanCodeLogOrderInfo(RingScanInformationQueryVo ringScanInformationQueryVo) {
+        return ringScanInformationMapper.scanCodeLogOrderInfo(ringScanInformationQueryVo);
+    }
+
 }

+ 35 - 16
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java

@@ -1,14 +1,5 @@
 package com.zkqy.amichi.service.impl;
 
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.time.Duration;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.stream.Collectors;
-
 import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
@@ -19,14 +10,11 @@ import com.kingdee.bos.webapi.sdk.K3CloudApi;
 import com.zkqy.amichi.domain.*;
 import com.zkqy.amichi.domain.vo.ScanStatistics;
 import com.zkqy.amichi.domain.vo.StationProductScanningRingVo;
-import com.zkqy.amichi.jd.domain.ErpRkVo;
-import com.zkqy.amichi.jd.domain.JdMaterialInfoVo;
 import com.zkqy.amichi.jd.domain.JdProductionOrder;
 import com.zkqy.amichi.jd.domain.MaterialRetentionLogVo;
 import com.zkqy.amichi.mapper.*;
+import com.zkqy.amichi.service.IStationInformationService;
 import com.zkqy.amichi.utils.WarehouseEntryNumberGenerator;
-import com.zkqy.common.core.domain.R;
-import com.zkqy.common.core.domain.entity.SysDictData;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.StringUtils;
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog;
@@ -40,9 +28,13 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.Resource;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
-import com.zkqy.amichi.service.IStationInformationService;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
 
 
 /**
@@ -202,7 +194,8 @@ public class StationInformationServiceImpl implements IStationInformationService
      */
     @Override
     @Transactional
-    public String stationProductScanningTwo2(String contentString) {
+    public String stationProductScanningTwo2(String contentString) throws Exception {
+
         //扫描人员码信息
         if(contentString.contains("scan@")){
             //扫描标记替换为空
@@ -326,6 +319,33 @@ public class StationInformationServiceImpl implements IStationInformationService
                 return stationInformations.get(0).getStationName()+"-"+stationInformations.get(0).getPersonnelName()+"-失败,未同步ERP-无-0-0-0";
             }
 
+            //判断这个生产订单是否结案
+            String isJn="{\n" +
+                    "    \"FormId\": \"PRD_MO\",\n" +
+                    "    \"FieldKeys\": \"FBillNo,FSerialNo\",\n" +
+                    "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"6\",\"Right\":\"\",\"Logic\":0}," +
+                    "        {\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\""+ringScanInformation.getProductionOrderNumber()+"\",\"Right\":\"\",\"Logic\":0}],\n" +
+                    "    \"OrderString\": \"\",\n" +
+                    "    \"TopRowCount\": 0,\n" +
+                    "    \"StartRow\": 0,\n" +
+                    "    \"Limit\": 2000,\n" +
+                    "    \"SubSystemId\": \"\"\n" +
+                    "}";
+            K3CloudApi api = new K3CloudApi();
+            String jnIs = api.billQuery(isJn);
+            if (!jnIs.equals("[]")) {
+                System.out.println("该流转卡生产订单已结案");
+                ringScanInformation.setExecutionMark("2");//成功
+                ringScanInformation.setExecutionMessage("失败-已结案");
+                int i2 = ringScanInformationMapper.insertRingScanInformation(ringScanInformation);
+                //改变订单详情的状态
+                PlanTaskDetails planTaskDetails=new PlanTaskDetails();
+                planTaskDetails.setStatus("3");
+                planTaskDetails.setDemandDocument(ringScanInformation.getProductionOrderNumber());
+                int i = planTaskDetailsMapper.updatePlanTaskDetailsByDemandDocument(planTaskDetails);
+                //返回失败信息
+                return stationInformations.get(0).getStationName()+"-"+stationInformations.get(0).getPersonnelName()+"-失败,已结案-无-0-0-0";
+            }
             //验证重复扫描
             RingScanInformation prodOrderScanning=new RingScanInformation();
             prodOrderScanning.setContentInformation(s1);
@@ -484,7 +504,6 @@ public class StationInformationServiceImpl implements IStationInformationService
                     productionPlanningManagementMapper.updateProductionPlanningManagement(productionPlanningManagementUpdate);
                 }
             }
-
             if(ringScanInformation.getProcessName().equals("焊接")){
                 String contentInformation = ringScanInformation.getContentInformation();
                 if(contentInformation.contains("D")){

+ 1 - 0
zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml

@@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="orderNumber!=null">and order_number = #{orderNumber}</if>
             <if test="productionOrderNumber!=null">and production_order_number =#{productionOrderNumber}</if>
         </where>
+        order by create_time desc
     </select>
 
 

+ 1 - 1
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationFirstMapper.xml

@@ -37,8 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="inspectionQuantity != null  and inspectionQuantity != ''"> and inspection_quantity = #{inspectionQuantity}</if>
             <if test="totalQuantity != null  and totalQuantity != ''"> and total_quantity = #{totalQuantity}</if>
             <if test="packingOrInspection != null  and packingOrInspection != ''"> and packing_or_inspection = #{packingOrInspection}</if>
-
         </where>
+        order by start_time desc
     </select>
     
     <select id="selectRingScanInformationFirstById" parameterType="Long" resultMap="RingScanInformationFirstResult">

+ 52 - 32
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml

@@ -190,53 +190,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by scanning_time DESC
         LIMIT 1
     </select>
-    <select id="SelectRingScanInformationLog" resultType="com.zkqy.amichi.domain.vo.RingScanInformationLogVo">
+    <select id="selectRingScanInformationLog" resultType="com.zkqy.amichi.domain.vo.RingScanInformationLogVo">
         SELECT
-            sub.count,
-            sub.process_name,
-            sub.native_numbering,
-            sub.order_number,
-            sub.scanning_time,
-            sub.sort,
-            rsif.`status`,
-            rsif.start_time,
-            rsif.end_time,
-            rsif.total_quantity
+        count(sub.count) as `count`,
+        sub.process_name,
+        sub.order_number,
+        sub.scanning_time,
+        sub.production_order_number,
+        sub.sort,
+        rsif.`status`,
+        rsif.start_time,
+        rsif.end_time,
+        rsif.total_quantity,
+        rsif.production_order_total_quantity
+        FROM
+        (
+        SELECT
+        rsi.process_name,
+        rsi.native_numbering,
+        rsi.order_number,
+        COUNT( rsi.process_name ) AS count,
+        rsi.production_order_number,
+        MAX( rsi.scanning_time ) AS scanning_time,
+        pl.sort
         FROM
-            (
-                SELECT
-                    rsi.process_name,
-                    rsi.native_numbering,
-                    rsi.order_number,
-                    COUNT( rsi.process_name ) AS count,
-		            MAX( rsi.scanning_time ) AS scanning_time,
-		            pl.sort
-                FROM
-                    fjqydb.ring_scan_information AS rsi
-                    LEFT JOIN fjqydb.procedure_list AS pl ON pl.procedur_name = rsi.process_name
-                GROUP BY
-                    rsi.order_number,
-                    rsi.process_name
-            ) AS sub
-                LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON ( sub.order_number = rsif.order_number )
+        fjqydb.ring_scan_information AS rsi
+        LEFT JOIN fjqydb.procedure_list AS pl ON pl.procedur_name = rsi.process_name
+        WHERE
+        rsi.execution_mark = '1'
+        GROUP BY
+        rsi.order_number,rsi.process_name,rsi.native_numbering
+        ) AS sub
+        LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON ( sub.production_order_number = rsif.production_order_number )
         <where>
             <if test="list != null and list.size()>0">
                 sub.order_number IN
-                    <foreach item="id" collection="list" open="(" separator="," close=")">
-                        #{id}
-                    </foreach>
+                <foreach item="id" collection="list" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
             </if>
             <if test="list == null or list.size() == 0">
                 rsi.order_number = 'X'
             </if>
         </where>
+        GROUP BY
+        sub.order_number,
+        sub.process_name
         ORDER BY
-            sub.order_number,sub.sort
+        rsif.start_time desc,sub.sort
     </select>
 
 
     <select id="selectRingScanInformationLog2" resultType="com.zkqy.amichi.domain.vo.RingScanInformationLogVo">
-
         SELECT
         count(sub.count) as `count`,
         sub.process_name,
@@ -404,6 +409,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             rsi.personnel_name,
             rsi.order_number;
     </select>
+    <select id="scanCodeLogOrderInfo" resultType="java.util.Map">
+        SELECT
+            rsif.order_number AS order_number,
+            rsif.total_quantity,
+            rsif.start_time,
+            COUNT(CASE WHEN rsi.process_name = '入库' THEN rsif.order_number END) AS over_number
+        FROM
+            fjqydb.`ring_scan_information_first` AS rsif
+                LEFT JOIN fjqydb.ring_scan_information AS rsi ON rsif.order_number = rsi.order_number
+        WHERE
+            rsi.execution_mark =1
+        GROUP BY
+            rsif.order_number
+        ORDER BY rsif.start_time desc
+    </select>
 
 
     <insert id="insertRingScanInformation" parameterType="com.zkqy.amichi.domain.RingScanInformation" useGeneratedKeys="true" keyProperty="id">

+ 0 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java

@@ -451,7 +451,6 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
                     commonEntities = runBpmExecuteProcessMapper.queryChemicalFibreExecuteProcessEnd(objectMap);
                 }
 
-
                 if (bpmExecuteProcess.getTaskProcessType().equals("1")) {
                     // 审批类型得到当前节点前所执行过的日志
                     commonEntities.forEach(item -> {

+ 36 - 15
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/WrappingNode.java

@@ -59,7 +59,6 @@ public class WrappingNode implements IRunBPMService {
 //        List<CommonEntity> saleProductsList = commonService.selectList(saleProductsListParam);
 
 
-
         //停止产线
         CommonEntity commonEntity2 = new CommonEntity();
         //查询销售产品信息
@@ -69,6 +68,7 @@ public class WrappingNode implements IRunBPMService {
         //找到销售的产品信息
         if(commonEntities!=null&&commonEntities.size()>0){
             String productionLineNo = commonEntities.get(0).getResultMap().get("productionLineNo").toString();
+            String productionLineNoIds = commonEntities.get(0).getResultMap().get("productsLineNoArryId").toString();
             //查询这个产线属于哪个车间的---停止产线
             CommonEntity commonEntity3 = new CommonEntity();
             //查询这个产线属于哪个车间的
@@ -95,12 +95,23 @@ public class WrappingNode implements IRunBPMService {
                         CommonEntity common2 = commonEntities4.get(0);
                         String productId = common2.getResultMap().get("id").toString();
                         //停止产线,
-                        CommonEntity commonEntity5 = new CommonEntity();
-                        commonEntity5.getBasicMap().put("tableName","details_of_the_refueling_plan");
-                        commonEntity5.getConditionMap().put("product_id",id);
-                        commonEntity5.getConditionMap().put("mac_id",productionLineNo);
-                        commonEntity5.getCommMap().put("plan_status","3");
-                        commonService.edit(commonEntity5);
+                        String[] split = productionLineNoIds.split(",");
+                        for (String s : split) {
+                            CommonEntity commonEntity5 = new CommonEntity();
+                            commonEntity5.getBasicMap().put("tableName","details_of_the_refueling_plan");
+                            commonEntity5.getConditionMap().put("product_id",id);
+                            commonEntity5.getConditionMap().put("mac_id",s);
+                            commonEntity5.getCommMap().put("plan_status","3");
+                            commonService.edit(commonEntity5);
+
+
+                            CommonEntity commonEntity6 = new CommonEntity();
+                            commonEntity6.getBasicMap().put("tableName","details_of_the_refueling_plan");
+                            commonEntity6.getConditionMap().put("product_id",id);
+                            commonEntity6.getConditionMap().put("mac_id",s);
+                            commonEntity6.getCommMap().put("plan_status","3");
+                            commonService.edit(commonEntity6);
+                        }
                     }
                 //非加弹部,翻框和络筒的处理逻辑
                 }else {
@@ -116,14 +127,24 @@ public class WrappingNode implements IRunBPMService {
                     if(commonEntities4!=null&&commonEntities4.size()>0){
                         CommonEntity common2 = commonEntities4.get(0);
                         String productId = common2.getResultMap().get("id").toString();
-                        //停止产线,
-                        CommonEntity commonEntity5 = new CommonEntity();
-                        commonEntity5.getBasicMap().put("tableName","details_of_the_refueling_plan_spinning");
-                        commonEntity5.getConditionMap().put("product_id",id);
-                        //
-                        commonEntity5.getConditionMap().put("mac_id",productionLineNo);
-                        commonEntity5.getCommMap().put("plan_status","3");
-                        commonService.edit(commonEntity5);
+                        String[] split = productionLineNoIds.split(",");
+                        for (String s : split) {
+                            //停止产线,
+                            CommonEntity commonEntity5 = new CommonEntity();
+                            commonEntity5.getBasicMap().put("tableName","details_of_the_refueling_plan_spinning");
+                            commonEntity5.getConditionMap().put("product_id",id);
+                            //
+                            commonEntity5.getConditionMap().put("mac_id",s);
+                            commonEntity5.getCommMap().put("plan_status","3");
+                            commonService.edit(commonEntity5);
+
+                            CommonEntity commonEntity6 = new CommonEntity();
+                            commonEntity6.getBasicMap().put("tableName","details_of_the_refueling_plan");
+                            commonEntity6.getConditionMap().put("product_id",id);
+                            commonEntity6.getConditionMap().put("mac_id",s);
+                            commonEntity6.getCommMap().put("plan_status","3");
+                            commonService.edit(commonEntity6);
+                        }
                     }
                 }
             }

+ 2 - 2
zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -773,7 +773,7 @@
         plan.${planID} = bep.task_plan_key
         where bep.task_process_state = 3
         <if test="taskProcessType != null">and bep.task_process_type = #{taskProcessType}</if>
-        <if test="taskProductionLineNo != null and taskProductionLineNo != ''">and plan.production_line_no = #{taskProductionLineNo} </if>
+        <if test="taskProductionLineNo != null and taskProductionLineNo != ''">and plan.products_line_no_arry_id like  CONCAT("%",#{taskProductionLineNo},'%') </if>
         <if test="taskName != null  and taskName != ''">
             and CONCAT(
             IFNULL( bep.task_key, '' ),
@@ -865,7 +865,7 @@
         )
         <if test="taskProcessState != null">and bep.task_process_state = #{taskProcessState}</if>
         <if test="taskProcessType != null">and bep.task_process_type = #{taskProcessType}</if>
-        <if test="taskProductionLineNo != null and taskProductionLineNo != ''">and plan.production_line_no = #{taskProductionLineNo}</if>
+        <if test="taskProductionLineNo != null and taskProductionLineNo != ''">and plan.products_line_no_arry_id like  CONCAT("%",#{taskProductionLineNo},'%')</if>
         <if test="taskName != null  and taskName != ''">
             and CONCAT(
             IFNULL( bep.task_key, '' ),

+ 2 - 2
zkqy-ui/.env.development

@@ -9,7 +9,7 @@ VUE_APP_BASE_API = '/dev-api'
 
 # 图片路径
 #VUE_APP_BASE_IMG_API = 'http://192.168.2.127:1024/dev-api'
-VUE_APP_BASE_IMG_API = 'http://192.168.2.190:1025/dev-api'
+VUE_APP_BASE_IMG_API = 'http://192.168.110.83:1025/dev-api'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
@@ -19,7 +19,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
 # VUE_APP_BASE_API1 = 'http://192.168.110.120:8066/'
 # VUE_APP_BASE_API1 = 'http://192.168.110.76:8066/'
 #VUE_APP_BASE_API1 = 'http://192.168.2.127:8066/'
-VUE_APP_BASE_API1 = 'http://192.168.2.190:8066/'
+VUE_APP_BASE_API1 = 'http://192.168.110.83:8066/'
 
 # ws地址
 VUE_APP_BASE_WS_API = '//127.0.0.1:8721'

+ 0 - 0
zkqy-ui/a


BIN
zkqy-ui/dist.zip


BIN
zkqy-ui/eec79d673c5ea6f7b1981f74d7c0555.png


File diff suppressed because it is too large
+ 6144 - 0
zkqy-ui/fjqydb1205.sql


File diff suppressed because it is too large
+ 110 - 0
zkqy-ui/fjqyhmc111.sql


BIN
zkqy-ui/public/favicon.ico


BIN
zkqy-ui/public/favicon1.ico


BIN
zkqy-ui/public/favicon2.ico


+ 24 - 0
zkqy-ui/src/api/amichi/ringScanInformation/index.js

@@ -16,6 +16,30 @@ export function scanCodeMonitoringLogs(query) {
     params: query
   })
 }
+export function scanCodeMonitoringLogs2(query) {
+  return request({
+    url: '/amichi/ringScanInformation/info/scanCodeMonitoringLogs2',
+    method: 'get',
+    params: query
+  })
+}
+
+export function scanCodeMonitoringLogs3(query) {
+  return request({
+    url: '/amichi/ringScanInformation/info/scanCodeMonitoringLogs3',
+    method: 'get',
+    params: query
+  })
+}
+
+// 按照流程管道的方式展示日志
+export function scanCodeLogOrderInfo(query) {
+  return request({
+    url: '/amichi/ringScanInformation/info/scanCodeLogOrderInfo',
+    method: 'get',
+    params: query
+  })
+}
 
 // 查询指环王扫描日志信息详细
 export function getInformation(id) {

BIN
zkqy-ui/src/assets/401_images/401.gif


BIN
zkqy-ui/src/assets/404_images/404.png


BIN
zkqy-ui/src/assets/404_images/404_cloud.png


BIN
zkqy-ui/src/assets/images/R-C.jfif


BIN
zkqy-ui/src/assets/images/background.jpg


BIN
zkqy-ui/src/assets/images/background1.jpg


BIN
zkqy-ui/src/assets/images/background2.jpg


BIN
zkqy-ui/src/assets/images/comlo.png


BIN
zkqy-ui/src/assets/images/comlogo.png


BIN
zkqy-ui/src/assets/images/comp.png


BIN
zkqy-ui/src/assets/images/login-background.jpg


BIN
zkqy-ui/src/assets/images/mec_logo.png


BIN
zkqy-ui/src/assets/images/mec_logo1.png


BIN
zkqy-ui/src/assets/images/mec_logo_login.png


BIN
zkqy-ui/src/assets/images/mecos-logo1.jpg


BIN
zkqy-ui/src/assets/images/mecos-logo1bak2.jpg


BIN
zkqy-ui/src/assets/images/mes412.png


BIN
zkqy-ui/src/assets/images/one.jpg


BIN
zkqy-ui/src/assets/images/profile.jpg


BIN
zkqy-ui/src/assets/logo/logo.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI001.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_01.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_02.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_03.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_04.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_05.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/OI_012_06.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx1.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx2.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx3.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx4.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx5.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx6.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx7.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx8.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzqx9.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx1.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx2.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx3.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx4.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx5.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dztx6.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz1.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz2.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz3.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz4.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz5.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/dzyz6.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/footerLogo.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic1.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic2.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic3.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic4.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic5.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic6.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic7.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic8.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/pic9.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/qdp1.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/qdp2.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/qdp3.png


BIN
zkqy-ui/src/assets/operationInstructionimgs/qdp4.png


Some files were not shown because too many files changed in this diff