소스 검색

first commit

suochencheng 6 년 전
커밋
8c27e2bf87
100개의 변경된 파일21497개의 추가작업 그리고 0개의 파일을 삭제
  1. 55 0
      .classpath
  2. 18 0
      .idea/artifacts/guangming_war_exploded.xml
  3. 16 0
      .idea/libraries/Java_EE_6_Java_EE_6.xml
  4. 69 0
      .idea/libraries/lib.xml
  5. 13 0
      .idea/libraries/lib1.xml
  6. 13 0
      .idea/libraries/lib2.xml
  7. 19 0
      .idea/misc.xml
  8. 8 0
      .idea/modules.xml
  9. 124 0
      .idea/uiDesigner.xml
  10. 6 0
      .idea/vcs.xml
  11. 1546 0
      .idea/workspace.xml
  12. 36 0
      .project
  13. 12 0
      .settings/.jsdtscope
  14. 26 0
      .settings/org.eclipse.core.resources.prefs
  15. 7 0
      .settings/org.eclipse.jdt.core.prefs
  16. 8 0
      .settings/org.eclipse.wst.common.component
  17. 10 0
      .settings/org.eclipse.wst.common.project.facet.core.xml
  18. 1 0
      .settings/org.eclipse.wst.jsdt.ui.superType.container
  19. 1 0
      .settings/org.eclipse.wst.jsdt.ui.superType.name
  20. 2 0
      .settings/org.eclipse.wst.ws.service.policy.prefs
  21. 3 0
      Web/META-INF/MANIFEST.MF
  22. 21 0
      Web/WEB-INF/el-common.tld
  23. 1 0
      Web/WEB-INF/html/index.html
  24. 1 0
      Web/WEB-INF/html/milk.html
  25. 369 0
      Web/WEB-INF/jsp/dailogue.jsp
  26. 148 0
      Web/WEB-INF/jsp/newAdmin/act.jsp
  27. 319 0
      Web/WEB-INF/jsp/newAdmin/activityInfo.jsp
  28. 195 0
      Web/WEB-INF/jsp/newAdmin/activityInfos.jsp
  29. 121 0
      Web/WEB-INF/jsp/newAdmin/add.jsp
  30. 111 0
      Web/WEB-INF/jsp/newAdmin/aiChuangLog.jsp
  31. 176 0
      Web/WEB-INF/jsp/newAdmin/aiChuangLogs.jsp
  32. 536 0
      Web/WEB-INF/jsp/newAdmin/allHandovernos.jsp
  33. 291 0
      Web/WEB-INF/jsp/newAdmin/allHandovernosIndex.jsp
  34. 496 0
      Web/WEB-INF/jsp/newAdmin/allHandovernosShow.jsp
  35. 144 0
      Web/WEB-INF/jsp/newAdmin/allHandovernosShowIndex.jsp
  36. 258 0
      Web/WEB-INF/jsp/newAdmin/article.jsp
  37. 261 0
      Web/WEB-INF/jsp/newAdmin/banner.jsp
  38. 254 0
      Web/WEB-INF/jsp/newAdmin/bannerShanrong.jsp
  39. 117 0
      Web/WEB-INF/jsp/newAdmin/bulk.jsp
  40. 186 0
      Web/WEB-INF/jsp/newAdmin/bulks.jsp
  41. 138 0
      Web/WEB-INF/jsp/newAdmin/carCip.jsp
  42. 126 0
      Web/WEB-INF/jsp/newAdmin/carCipSeal.jsp
  43. 201 0
      Web/WEB-INF/jsp/newAdmin/carCipSeals.jsp
  44. 221 0
      Web/WEB-INF/jsp/newAdmin/carCips.jsp
  45. 114 0
      Web/WEB-INF/jsp/newAdmin/carGps.jsp
  46. 181 0
      Web/WEB-INF/jsp/newAdmin/carGpss.jsp
  47. 165 0
      Web/WEB-INF/jsp/newAdmin/cartypeCip.jsp
  48. 222 0
      Web/WEB-INF/jsp/newAdmin/cartypeCips.jsp
  49. 175 0
      Web/WEB-INF/jsp/newAdmin/changePassword.jsp
  50. 109 0
      Web/WEB-INF/jsp/newAdmin/cipResult.jsp
  51. 129 0
      Web/WEB-INF/jsp/newAdmin/cipResultDetail.jsp
  52. 206 0
      Web/WEB-INF/jsp/newAdmin/cipResultDetails.jsp
  53. 319 0
      Web/WEB-INF/jsp/newAdmin/cipResults.jsp
  54. 126 0
      Web/WEB-INF/jsp/newAdmin/collectionMilkresult.jsp
  55. 423 0
      Web/WEB-INF/jsp/newAdmin/collectionMilkresults.jsp
  56. 266 0
      Web/WEB-INF/jsp/newAdmin/companyInfos.jsp
  57. 18 0
      Web/WEB-INF/jsp/newAdmin/contentAfter.jsp
  58. 325 0
      Web/WEB-INF/jsp/newAdmin/contentBefore.jsp
  59. 111 0
      Web/WEB-INF/jsp/newAdmin/cylindeApply.jsp
  60. 176 0
      Web/WEB-INF/jsp/newAdmin/cylindeApplys.jsp
  61. 126 0
      Web/WEB-INF/jsp/newAdmin/cylinderCip.jsp
  62. 201 0
      Web/WEB-INF/jsp/newAdmin/cylinderCips.jsp
  63. 79 0
      Web/WEB-INF/jsp/newAdmin/dataShowLeft.jsp
  64. 162 0
      Web/WEB-INF/jsp/newAdmin/departInfo.jsp
  65. 282 0
      Web/WEB-INF/jsp/newAdmin/departInfos.jsp
  66. 289 0
      Web/WEB-INF/jsp/newAdmin/detail.html
  67. 642 0
      Web/WEB-INF/jsp/newAdmin/detail.jsp
  68. 181 0
      Web/WEB-INF/jsp/newAdmin/discountInfo.jsp
  69. 299 0
      Web/WEB-INF/jsp/newAdmin/driverInfo.jsp
  70. 389 0
      Web/WEB-INF/jsp/newAdmin/driverInfos.jsp
  71. 240 0
      Web/WEB-INF/jsp/newAdmin/errorHandovers.jsp
  72. 120 0
      Web/WEB-INF/jsp/newAdmin/factoryDetection.jsp
  73. 191 0
      Web/WEB-INF/jsp/newAdmin/factoryDetections.jsp
  74. 255 0
      Web/WEB-INF/jsp/newAdmin/factoryInfo.jsp
  75. 517 0
      Web/WEB-INF/jsp/newAdmin/factoryInfos.jsp
  76. 44 0
      Web/WEB-INF/jsp/newAdmin/factoryLeft.jsp
  77. 132 0
      Web/WEB-INF/jsp/newAdmin/factorymilkTank.jsp
  78. 211 0
      Web/WEB-INF/jsp/newAdmin/factorymilkTanks.jsp
  79. 150 0
      Web/WEB-INF/jsp/newAdmin/freshmilkHandover.jsp
  80. 241 0
      Web/WEB-INF/jsp/newAdmin/freshmilkHandovers.jsp
  81. 342 0
      Web/WEB-INF/jsp/newAdmin/freshmilkProduce.jsp
  82. 313 0
      Web/WEB-INF/jsp/newAdmin/freshmilkProduces.jsp
  83. 137 0
      Web/WEB-INF/jsp/newAdmin/freshmilkProducesIndex.jsp
  84. 174 0
      Web/WEB-INF/jsp/newAdmin/freshmilkTransport.jsp
  85. 281 0
      Web/WEB-INF/jsp/newAdmin/freshmilkTransports.jsp
  86. 174 0
      Web/WEB-INF/jsp/newAdmin/giveInfo.jsp
  87. 212 0
      Web/WEB-INF/jsp/newAdmin/handoverDetails.jsp
  88. 1473 0
      Web/WEB-INF/jsp/newAdmin/handovernosDetailNew.jsp
  89. 460 0
      Web/WEB-INF/jsp/newAdmin/head.jsp
  90. 74 0
      Web/WEB-INF/jsp/newAdmin/index.jsp
  91. 180 0
      Web/WEB-INF/jsp/newAdmin/limsDetection.jsp
  92. 291 0
      Web/WEB-INF/jsp/newAdmin/limsDetections.jsp
  93. 245 0
      Web/WEB-INF/jsp/newAdmin/login.jsp
  94. 311 0
      Web/WEB-INF/jsp/newAdmin/logisticsCo.jsp
  95. 376 0
      Web/WEB-INF/jsp/newAdmin/logisticsCos.jsp
  96. 117 0
      Web/WEB-INF/jsp/newAdmin/logisticscoPlan.jsp
  97. 186 0
      Web/WEB-INF/jsp/newAdmin/logisticscoPlans.jsp
  98. 1016 0
      Web/WEB-INF/jsp/newAdmin/map.jsp
  99. 522 0
      Web/WEB-INF/jsp/newAdmin/mapper.jsp
  100. 113 0
      Web/WEB-INF/jsp/newAdmin/menuInfo.jsp

+ 55 - 0
.classpath

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="com/test/spring/" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+		<attributes>
+			<attribute name="owner.project.facets" value="java"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v7.0">
+		<attributes>
+			<attribute name="owner.project.facets" value="jst.web"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/aopalliance-1.0.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/commons-logging-1.1.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/jettison-1.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/mybatis-spring-1.1.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.aop-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.asm-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.beans-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.context-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.core-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.expression-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.jdbc-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.transaction-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.web-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.web.servlet-3.1.2.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/xpp3_min-1.1.4c.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/log4j-1.2.17.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/c3p0-0.9.1.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/jackson-core-lgpl-1.9.13.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/jackson-mapper-lgpl-1.9.13.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/org.springframework.test-3.1.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/mybatis-3.3.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/aliyun-sdk-oss-2.0.6.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/dom4j-1.6.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/json-lib-2.3-jdk15.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/commons-lang-2.5.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/ezmorph-1.0.6.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/commons-beanutils-1.7.0.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/commons-collections-3.2.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/jdom-1.1.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/json.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/xstream-1.4.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/jstl-1.2.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/commons-codec-1.9.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/httpcore-4.4.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/gson-2.2.4.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/mysql-connector-java-5.1.30-bin.jar"/>
+	<classpathentry kind="lib" path="Web/WEB-INF/lib/ueditor-1.1.2.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="build/classes"/>
+</classpath>

+ 18 - 0
.idea/artifacts/guangming_war_exploded.xml

@@ -0,0 +1,18 @@
+<component name="ArtifactManager">
+  <artifact type="exploded-war" name="guangming:war exploded">
+    <output-path>$PROJECT_DIR$/out/artifacts/guangming_war_exploded</output-path>
+    <root id="root">
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="classes">
+          <element id="module-output" name="guangming" />
+        </element>
+        <element id="directory" name="lib">
+          <element id="library" level="project" name="lib" />
+          <element id="library" level="project" name="lib2" />
+          <element id="library" level="project" name="lib1" />
+        </element>
+      </element>
+      <element id="javaee-facet-resources" facet="guangming/web/Web" />
+    </root>
+  </artifact>
+</component>

+ 16 - 0
.idea/libraries/Java_EE_6_Java_EE_6.xml

@@ -0,0 +1,16 @@
+<component name="libraryTable">
+  <library name="Java EE 6-Java EE 6">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/javax.persistence.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.annotation.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.jms.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.ejb.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.transaction.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.resource.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.servlet.jsp.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/javax.servlet.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 69 - 0
.idea/libraries/lib.xml

@@ -0,0 +1,69 @@
+<component name="libraryTable">
+  <library name="lib">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.context-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.transaction-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jdom-1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/Qrcode.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/thumbnailator-0.4.5.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.core-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/ezmorph-1.0.6.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-excelant-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/log4j-1.2.17.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/xstream-1.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/httpcore-4.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-fileupload-1.2.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/mybatis-3.3.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-ooxml-schemas-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-examples-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-beanutils-1.7.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-ooxml-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/aopalliance-1.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/json.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/mail-1.4.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.jdbc-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.web-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/xpp3_min-1.1.4c.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/activation-1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-codec-1.9.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-lang-2.5.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/curvesapi-1.04.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.expression-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/json-lib-2.3-jdk15.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.web.servlet-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/c3p0-0.9.1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/mybatis-spring-1.1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.asm-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/aliyun-sdk-oss-2.0.6.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jackson-mapper-lgpl-1.9.13.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/dom4j-1.6.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-collections4-4.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-logging-1.1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/httpclient-4.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jboss-vfs-3.1.0.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.aop-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/xmlbeans-2.6.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/poi-scratchpad-3.16.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jboss-logging-3.0.0.CR1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.beans-3.1.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jstl-1.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-io-2.0.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-collections-3.2.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/gson-2.2.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/ueditor-1.1.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jackson-core-lgpl-1.9.13.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/mysql-connector-java-5.1.30-bin.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/org.springframework.test-3.1.1.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/jettison-1.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/httpmime-4.5.3.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-discovery-0.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/commons-httpclient-3.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/dahantc-http-json-api.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/Web/WEB-INF/lib/dahantc-http-json-api-resource.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/lib1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="lib1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/WEB-INF/lib/commons-io-2.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/WEB-INF/lib/commons-codec-1.9.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/WEB-INF/lib/ueditor-1.1.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/WEB-INF/lib/json.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/WEB-INF/lib/commons-fileupload-1.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 13 - 0
.idea/libraries/lib2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="lib2">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/jsp/lib/ueditor-1.1.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/jsp/lib/commons-io-2.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/jsp/lib/commons-codec-1.9.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/jsp/lib/json.jar!/" />
+      <root url="jar://$PROJECT_DIR$/Web/ueditor/jsp/lib/commons-fileupload-1.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 19 - 0
.idea/misc.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.7" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+  <component name="SvnBranchConfigurationManager">
+    <option name="myConfigurationMap">
+      <map>
+        <entry key="$PROJECT_DIR$">
+          <value>
+            <SvnBranchConfiguration>
+              <option name="trunkUrl" value="svn://121.40.132.44/guangming/trunk" />
+            </SvnBranchConfiguration>
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/guangming.iml" filepath="$PROJECT_DIR$/guangming.iml" />
+    </modules>
+  </component>
+</project>

+ 124 - 0
.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="svn" />
+  </component>
+</project>

+ 1546 - 0
.idea/workspace.xml

@@ -0,0 +1,1546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ArtifactsWorkspaceSettings">
+    <artifacts-to-build>
+      <artifact name="guangming:war exploded" />
+    </artifacts-to-build>
+  </component>
+  <component name="BookmarkManager">
+    <bookmark url="file://$PROJECT_DIR$/src/com/guangming/aiservice/AIDriverInfoService.java" description="List&lt;AIDriverInfo&gt; getAIUpdateImgTruckList (Driver..." line="24" />
+    <bookmark url="file://$PROJECT_DIR$/../SuYuan/src/com/suyuan/service/PurchaseApplyService.java" description="List&lt;PurchaseApply&gt; getPurchaseApplyByPage(Page pa..." line="15" />
+    <bookmark url="file://$PROJECT_DIR$/src/com/guangming/service/FactorymilkTankService.java" description="boolean createMilkFactorymilkTank(String handover)..." line="30" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="4687df4b-5b7b-4747-adcf-03569cfae678" name="Default" comment="" />
+    <ignored path="$PROJECT_DIR$/out/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <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="DatabaseView">
+    <option name="SHOW_INTERMEDIATE" value="true" />
+    <option name="GROUP_DATA_SOURCES" value="true" />
+    <option name="GROUP_SCHEMA" value="true" />
+    <option name="GROUP_CONTENTS" value="false" />
+    <option name="SORT_POSITIONED" value="false" />
+    <option name="SHOW_EMPTY_GROUPS" value="false" />
+    <option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
+    <option name="HIDDEN_KINDS">
+      <set />
+    </option>
+    <expand />
+    <select />
+  </component>
+  <component name="FUSProjectUsageTrigger">
+    <session id="-1226577404">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.closed" value="1" />
+          <entry key="project.open.time.1" value="1" />
+          <entry key="project.opened" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.open">
+        <counts>
+          <entry key="properties" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.open">
+        <counts>
+          <entry key="Properties" value="1" />
+        </counts>
+      </usages-collector>
+    </session>
+  </component>
+  <component name="FavoritesManager">
+    <favorites_list name="guangming" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/web/CarGpsController.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="2394">
+              <caret line="136" column="39" selection-start-line="136" selection-start-column="39" selection-end-line="136" selection-end-column="39" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/service/CarGpsService.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="651">
+              <caret line="34" column="11" selection-start-line="34" selection-start-column="11" selection-end-line="34" selection-end-column="11" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/CarGpsServiceImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="101">
+              <caret line="134" column="13" lean-forward="true" selection-start-line="134" selection-start-column="13" selection-end-line="134" selection-end-column="13" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/jdbc.properties">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="231">
+              <caret line="11" selection-end-line="11" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/CarGpsMapper.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="714">
+              <caret line="40" selection-start-line="40" selection-end-line="40" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/CarGpsMapper.xml">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="8757">
+              <caret line="417" column="17" selection-start-line="417" selection-start-column="17" selection-end-line="417" selection-end-column="17" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/web/SupplierdemandPlanController.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="1218">
+              <caret line="78" column="77" selection-start-line="78" selection-start-column="77" selection-end-line="78" selection-end-column="77" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/web/MESController.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="15435">
+              <caret line="757" selection-start-line="757" selection-end-line="757" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/guangming/web/CarCipController.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="4620">
+              <caret line="239" column="19" selection-start-line="239" selection-start-column="19" selection-end-line="239" selection-end-column="19" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/applicationContext.xml">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="294">
+              <caret line="14" column="53" selection-start-line="14" selection-start-column="53" selection-end-line="14" selection-end-column="53" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Class" />
+      </list>
+    </option>
+  </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>shiftsStr</find>
+      <find>doPine</find>
+      <find>doPrint</find>
+      <find>nterva</find>
+      <find>clearInterval</find>
+      <find>getMap</find>
+      <find>handoverno</find>
+      <find>getOneResultMap</find>
+      <find>getCarGpsByHandOver</find>
+      <find>milkCapacity</find>
+      <find>编辑</find>
+      <find>printBtn</find>
+      <find>cancelTask</find>
+      <find>删除</find>
+      <find>返回</find>
+      <find>freshmilkTransport</find>
+      <find>重写</find>
+      <find>disable</find>
+      <find>weightDialogVisible</find>
+      <find>editWeight</find>
+      <find>weightInfo</find>
+      <find>doCancel</find>
+      <find>chageStatus</find>
+      <find>editStatus</find>
+      <find>editDialogVisible</find>
+      <find>statusDialogVisible</find>
+      <find>supplierCylinderno</find>
+      <find>光明乳业</find>
+      <find>logo</find>
+      <find>EncodingTool.encodeStr</find>
+    </findStrings>
+    <replaceStrings>
+      <replace />
+      <replace>searchKey</replace>
+      <replace>cardScanningCopy</replace>
+      <replace>healthCertificate</replace>
+      <replace>&lt;title&gt;光明乳业&lt;/title&gt;</replace>
+      <replace>http://172.16.84.43/main/</replace>
+      <replace>光明乳业</replace>
+      <replace>工厂取样</replace>
+      <replace>concat('%',#{searchKey},'%')</replace>
+      <replace>concat('%',#{record.searchKey},'%')</replace>
+      <replace>172.16.184.250</replace>
+      <replace>运输车</replace>
+      <replace>PropertiesFileLoader.getProerties(&quot;ZHXBD_GPS_URI&quot;) + &quot;</replace>
+      <replace>PropertiesFileLoader.getProerties(&quot;MES_BASE_URL&quot;) + &quot;</replace>
+      <replace>冷排</replace>
+      <replace>奶源追溯</replace>
+    </replaceStrings>
+  </component>
+  <component name="Git.Settings">
+    <option name="ROOT_SYNC" value="DONT_SYNC" />
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/src/com/guangming/dao/DepartInfoMapper.xml" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/departInfos.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/model/OperationLog.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/OperationLogController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/dao/OperationLogMapper.xml" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/operationLogs.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/dao/FreshmilkProduceMapper.xml" />
+        <option value="$PROJECT_DIR$/src/com/guangming/model/FreshmilkProduce.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/model/FreshmilkTransport.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/dao/FreshmilkTransportMapper.xml" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/HandoverController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/RfidApiController.java" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/systemLogs.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/UserInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/FactoryInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/SupplierInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/LogisticsCoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/DepartInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/MenuInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/RoleInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/DriverInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/FreshmilkProduceController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/TransporterInfoController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/CarGpsController.java" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/userInfo.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/head.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/warningInfos.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/supplierInfos.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/cartypeCip.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/parameterInfo.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/user.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/freshmilkProduces.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/roleInfo.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/transporterInfo.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/util/DesEncodeUtil.java" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/allHandovernos.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/supplierdemandPlans.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/userInfos.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/dao/MilkCylinderMapper.xml" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/handovernosDetailNew.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/driverInfo.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/service/impl/ChangeCarnoLogServiceImpl.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/FactorymilkTankController.java" />
+        <option value="$PROJECT_DIR$/src/appWebService.xml" />
+        <option value="$PROJECT_DIR$/src/com/guangming/util/CheckUtil.java" />
+        <option value="$PROJECT_DIR$/src/jdbc.properties" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/map.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/contentBefore.jsp" />
+        <option value="$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/login.jsp" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/MESController.java" />
+        <option value="$PROJECT_DIR$/src/com/guangming/web/CarCipController.java" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="LogFilters">
+    <option name="FILTER_ERRORS" value="false" />
+    <option name="FILTER_WARNINGS" value="false" />
+    <option name="FILTER_INFO" value="true" />
+    <option name="FILTER_DEBUG" value="true" />
+    <option name="CUSTOM_FILTER" />
+  </component>
+  <component name="NodePackageJsonFileManager">
+    <packageJsonPaths>
+      <path value="$PROJECT_DIR$/WebSrc/Milk/package.json" />
+      <path value="$PROJECT_DIR$/WebSrc/tzccb/package.json" />
+    </packageJsonPaths>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="7">
+    <option name="x" value="-6" />
+    <option name="y" value="-6" />
+    <option name="width" value="1377" />
+    <option name="height" value="739" />
+  </component>
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="PackagesPane" />
+      <pane id="Scope" />
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="guangming_copy" type="b2602c69:ProjectViewProjectNode" />
+              <item name="guangming_copy" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="guangming_copy" type="b2602c69:ProjectViewProjectNode" />
+              <item name="guangming_copy" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="SearchEverywhereHistoryKey" value="transporterInfos&#9;FILE&#9;file://D:/projects/guangming/Web/WEB-INF/jsp/newAdmin/transporterInfos.jsp" />
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="extract.method.default.visibility" value="public" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <property name="project.structure.last.edited" value="Modules" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="project.structure.side.proportion" value="0.2" />
+    <property name="settings.editor.selected.configurable" value="vcs.Git" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\projects\guangming\Web\WEB-INF\jsp\newAdmin" />
+      <recent name="D:\projects\guangming\Web\js" />
+      <recent name="D:\projects\guangming\Web\pdf" />
+      <recent name="D:\projects\guangming\Web\WEB-INF\lib" />
+    </key>
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="test.com.guangming.service" />
+      <recent name="com.guangming.model" />
+      <recent name="com.guangming.web" />
+      <recent name="com.guangming.util" />
+      <recent name="com.guangming.web.admin" />
+    </key>
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="D:\projects\guangming\src\SMS" />
+    </key>
+  </component>
+  <component name="RunDashboard">
+    <option name="ruleStates">
+      <list>
+        <RuleState>
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+        </RuleState>
+        <RuleState>
+          <option name="name" value="StatusDashboardGroupingRule" />
+        </RuleState>
+      </list>
+    </option>
+  </component>
+  <component name="RunManager" selected="Tomcat Server.Unnamed">
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="RunTool" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="frame.gen.RunTool" />
+      <module name="guangming" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="frame.gen.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="CreateQRCodeTest.transporterInfoTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="guangming" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="test.com.guangming.service.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="test.com.guangming.service" />
+      <option name="MAIN_CLASS_NAME" value="test.com.guangming.service.CreateQRCodeTest" />
+      <option name="METHOD_NAME" value="transporterInfoTest" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="MesTest.FactorymilkTankTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="guangming" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="test.com.guangming.service.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="test.com.guangming.service" />
+      <option name="MAIN_CLASS_NAME" value="test.com.guangming.service.MesTest" />
+      <option name="METHOD_NAME" value="FactorymilkTankTest" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="MesTest.RandomTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="guangming" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="test.com.guangming.service.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="test.com.guangming.service" />
+      <option name="MAIN_CLASS_NAME" value="test.com.guangming.service.MesTest" />
+      <option name="METHOD_NAME" value="RandomTest" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="MesTest.TankerIncomingTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="guangming" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="test.com.guangming.service.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="test.com.guangming.service" />
+      <option name="MAIN_CLASS_NAME" value="test.com.guangming.service.MesTest" />
+      <option name="METHOD_NAME" value="TankerIncomingTest" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="TestNG" factoryName="TestNG">
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <properties />
+      <listeners />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="Unnamed" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.28" ALTERNATIVE_JRE_ENABLED="false">
+      <option name="COMMON_VM_ARGUMENTS" value="-Dfile.encoding=UTF-8" />
+      <option name="UPDATE_ON_FRAME_DEACTIVATION" value="true" />
+      <option name="UPDATE_CLASSES_ON_FRAME_DEACTIVATION" value="true" />
+      <option name="UPDATING_POLICY" value="restart-server" />
+      <deployment>
+        <artifact name="guangming:war exploded">
+          <settings>
+            <option name="CONTEXT_PATH" value="/" />
+          </settings>
+        </artifact>
+      </deployment>
+      <server-settings>
+        <option name="BASE_DIRECTORY_NAME" value="Unnamed_guangming" />
+      </server-settings>
+      <predefined_log_file id="Tomcat" enabled="true" />
+      <predefined_log_file id="Tomcat Catalina" enabled="true" />
+      <predefined_log_file id="Tomcat Manager" enabled="false" />
+      <predefined_log_file id="Tomcat Host Manager" enabled="false" />
+      <predefined_log_file id="Tomcat Localhost Access" enabled="false" />
+      <RunnerSettings RunnerId="Debug">
+        <option name="DEBUG_PORT" value="50803" />
+      </RunnerSettings>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <method v="2">
+        <option name="Make" enabled="true" />
+        <option name="BuildArtifacts" enabled="true">
+          <artifact name="guangming:war exploded" />
+        </option>
+      </method>
+    </configuration>
+    <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
+      <module name="" />
+      <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+      <option name="PROGRAM_PARAMETERS" />
+      <predefined_log_file id="idea.log" enabled="true" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <list>
+      <item itemvalue="Tomcat Server.Unnamed" />
+      <item itemvalue="Application.RunTool" />
+      <item itemvalue="JUnit.MesTest.TankerIncomingTest" />
+      <item itemvalue="JUnit.MesTest.RandomTest" />
+      <item itemvalue="JUnit.MesTest.FactorymilkTankTest" />
+      <item itemvalue="JUnit.CreateQRCodeTest.transporterInfoTest" />
+    </list>
+    <recent_temporary>
+      <list>
+        <item itemvalue="JUnit.CreateQRCodeTest.transporterInfoTest" />
+        <item itemvalue="Application.RunTool" />
+        <item itemvalue="JUnit.MesTest.FactorymilkTankTest" />
+        <item itemvalue="JUnit.MesTest.RandomTest" />
+        <item itemvalue="JUnit.MesTest.TankerIncomingTest" />
+      </list>
+    </recent_temporary>
+  </component>
+  <component name="SvnConfiguration" cleanupOnStartRun="true">
+    <configuration>C:\Users\12413\AppData\Roaming\Subversion</configuration>
+    <supportedVersion>125</supportedVersion>
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="4687df4b-5b7b-4747-adcf-03569cfae678" name="Default" comment="" />
+      <created>1510795178951</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1510795178951</updated>
+      <workItem from="1510795184295" duration="2215000" />
+      <workItem from="1510803222748" duration="1110000" />
+      <workItem from="1510819976411" duration="462000" />
+      <workItem from="1510892418807" duration="7000" />
+      <workItem from="1510892439491" duration="847000" />
+      <workItem from="1510904930529" duration="135000" />
+      <workItem from="1511143801126" duration="691000" />
+      <workItem from="1511176647365" duration="3415000" />
+      <workItem from="1511247779153" duration="643000" />
+      <workItem from="1511256103503" duration="4399000" />
+      <workItem from="1511261151865" duration="92000" />
+      <workItem from="1511331678659" duration="1332000" />
+      <workItem from="1511348585130" duration="667000" />
+      <workItem from="1511399251474" duration="3043000" />
+      <workItem from="1511426106151" duration="148000" />
+      <workItem from="1511590504494" duration="595000" />
+      <workItem from="1511611016509" duration="1232000" />
+      <workItem from="1511677421051" duration="4000" />
+      <workItem from="1511817579333" duration="1976000" />
+      <workItem from="1511826417513" duration="18191000" />
+      <workItem from="1511855811032" duration="657000" />
+      <workItem from="1512004447213" duration="10101000" />
+      <workItem from="1512090423210" duration="1180000" />
+      <workItem from="1512113978191" duration="818000" />
+      <workItem from="1512116048300" duration="4025000" />
+      <workItem from="1512306680886" duration="632000" />
+      <workItem from="1512350641496" duration="1008000" />
+      <workItem from="1512376720292" duration="211000" />
+      <workItem from="1512609690955" duration="10816000" />
+      <workItem from="1512694947636" duration="18951000" />
+      <workItem from="1512874157497" duration="24290000" />
+      <workItem from="1513040783294" duration="3784000" />
+      <workItem from="1513044733535" duration="4507000" />
+      <workItem from="1513090311713" duration="2139000" />
+      <workItem from="1513093249655" duration="1123000" />
+      <workItem from="1513145958704" duration="14091000" />
+      <workItem from="1513213627175" duration="21323000" />
+      <workItem from="1513304376611" duration="9457000" />
+      <workItem from="1513496951639" duration="2146000" />
+      <workItem from="1513558846323" duration="698000" />
+      <workItem from="1513566333185" duration="6127000" />
+      <workItem from="1513582867649" duration="176000" />
+      <workItem from="1513587864431" duration="1090000" />
+      <workItem from="1513589303505" duration="1322000" />
+      <workItem from="1513662480717" duration="2447000" />
+      <workItem from="1513678926970" duration="694000" />
+      <workItem from="1513739621330" duration="7857000" />
+      <workItem from="1513837629157" duration="18881000" />
+      <workItem from="1513904898602" duration="19891000" />
+      <workItem from="1513993959935" duration="14006000" />
+      <workItem from="1514163536001" duration="36269000" />
+      <workItem from="1514250747166" duration="12533000" />
+      <workItem from="1514367914045" duration="1605000" />
+      <workItem from="1514423159162" duration="3782000" />
+      <workItem from="1514433700765" duration="2533000" />
+      <workItem from="1514513465598" duration="7768000" />
+      <workItem from="1514654855563" duration="607000" />
+      <workItem from="1514859816574" duration="6365000" />
+      <workItem from="1514947599862" duration="1860000" />
+      <workItem from="1515131741089" duration="1521000" />
+      <workItem from="1515164178266" duration="2278000" />
+      <workItem from="1515230687297" duration="237000" />
+      <workItem from="1515233958605" duration="2493000" />
+      <workItem from="1515322218545" duration="11507000" />
+      <workItem from="1515379681784" duration="7931000" />
+      <workItem from="1515418515420" duration="6120000" />
+      <workItem from="1515462631895" duration="9391000" />
+      <workItem from="1515494798878" duration="15015000" />
+      <workItem from="1515543424445" duration="11644000" />
+      <workItem from="1515583407168" duration="2142000" />
+      <workItem from="1515590592406" duration="751000" />
+      <workItem from="1515644093063" duration="8271000" />
+      <workItem from="1515759685510" duration="2504000" />
+      <workItem from="1515813624269" duration="2151000" />
+      <workItem from="1515841054226" duration="5528000" />
+      <workItem from="1515859544382" duration="1357000" />
+      <workItem from="1515894682027" duration="14121000" />
+      <workItem from="1515946872548" duration="3619000" />
+      <workItem from="1515978600582" duration="5896000" />
+      <workItem from="1516066220032" duration="846000" />
+      <workItem from="1516071090548" duration="8306000" />
+      <workItem from="1516107879012" duration="786000" />
+      <workItem from="1516154324633" duration="1252000" />
+      <workItem from="1516167525240" duration="7352000" />
+      <workItem from="1516243405107" duration="693000" />
+      <workItem from="1516262680362" duration="9795000" />
+      <workItem from="1516328228064" duration="16664000" />
+      <workItem from="1516414030566" duration="21536000" />
+      <workItem from="1516583295831" duration="17332000" />
+      <workItem from="1516623238484" duration="619000" />
+      <workItem from="1516669188461" duration="1670000" />
+      <workItem from="1516688008660" duration="14815000" />
+      <workItem from="1516757112942" duration="24686000" />
+      <workItem from="1516802529507" duration="4038000" />
+      <workItem from="1516842570374" duration="23078000" />
+      <workItem from="1516934161713" duration="406000" />
+      <workItem from="1516946462486" duration="2315000" />
+      <workItem from="1516959453928" duration="641000" />
+      <workItem from="1517020030283" duration="7346000" />
+      <workItem from="1517188526689" duration="18812000" />
+      <workItem from="1517274269537" duration="8246000" />
+      <workItem from="1517300619604" duration="4861000" />
+      <workItem from="1517360730744" duration="2637000" />
+      <workItem from="1517365554799" duration="15684000" />
+      <workItem from="1517448469718" duration="724000" />
+      <workItem from="1517449340575" duration="3417000" />
+      <workItem from="1517534838911" duration="2164000" />
+      <workItem from="1517553055832" duration="172000" />
+      <workItem from="1517553434974" duration="7000" />
+      <workItem from="1517553604693" duration="445000" />
+      <workItem from="1517589955091" duration="1605000" />
+      <workItem from="1517710252714" duration="1024000" />
+      <workItem from="1517739675242" duration="911000" />
+      <workItem from="1517794222977" duration="8529000" />
+      <workItem from="1517835422280" duration="3005000" />
+      <workItem from="1517882485099" duration="6951000" />
+      <workItem from="1517965618203" duration="337000" />
+      <workItem from="1517966508922" duration="4721000" />
+      <workItem from="1517990615856" duration="4227000" />
+      <workItem from="1518048456188" duration="14946000" />
+      <workItem from="1518143783720" duration="10310000" />
+      <workItem from="1518226341505" duration="1007000" />
+      <workItem from="1518313072188" duration="3143000" />
+      <workItem from="1519718059000" duration="1112000" />
+      <workItem from="1519783565619" duration="4343000" />
+      <workItem from="1520215288714" duration="690000" />
+      <workItem from="1520218005910" duration="625000" />
+      <workItem from="1520222783087" duration="1207000" />
+      <workItem from="1520306477305" duration="1744000" />
+      <workItem from="1520385542271" duration="159000" />
+      <workItem from="1520401044006" duration="1104000" />
+      <workItem from="1520489941811" duration="559000" />
+      <workItem from="1520904078186" duration="9475000" />
+      <workItem from="1520932190376" duration="1828000" />
+      <workItem from="1520994372923" duration="3380000" />
+      <workItem from="1521007188942" duration="4531000" />
+      <workItem from="1521075441549" duration="6093000" />
+      <workItem from="1521103620013" duration="1985000" />
+      <workItem from="1521162752902" duration="5203000" />
+      <workItem from="1521284353232" duration="1719000" />
+      <workItem from="1521355251118" duration="87000" />
+      <workItem from="1521446148213" duration="2434000" />
+      <workItem from="1521518233021" duration="5300000" />
+      <workItem from="1521535711233" duration="3323000" />
+      <workItem from="1521594404016" duration="1003000" />
+      <workItem from="1521620290149" duration="1226000" />
+      <workItem from="1522027829779" duration="3211000" />
+      <workItem from="1522047561017" duration="966000" />
+      <workItem from="1522201309353" duration="10539000" />
+      <workItem from="1522285484098" duration="21656000" />
+      <workItem from="1522372553887" duration="2533000" />
+      <workItem from="1522377512412" duration="177000" />
+      <workItem from="1522380093117" duration="1988000" />
+      <workItem from="1522393740533" duration="761000" />
+      <workItem from="1522394813356" duration="857000" />
+      <workItem from="1522401816318" duration="4107000" />
+      <workItem from="1522631192364" duration="13514000" />
+      <workItem from="1522651621236" duration="10565000" />
+      <workItem from="1522716838344" duration="18800000" />
+      <workItem from="1522804719605" duration="3813000" />
+      <workItem from="1523149647723" duration="22829000" />
+      <workItem from="1523236497590" duration="2569000" />
+      <workItem from="1523252440293" duration="18560000" />
+      <workItem from="1523276808508" duration="2002000" />
+      <workItem from="1523321982860" duration="4127000" />
+      <workItem from="1523345652502" duration="7159000" />
+      <workItem from="1523409233251" duration="11629000" />
+      <workItem from="1523513544561" duration="13586000" />
+      <workItem from="1523582198950" duration="22547000" />
+      <workItem from="1523696380695" duration="906000" />
+      <workItem from="1523784500866" duration="179000" />
+      <workItem from="1523842740429" duration="24203000" />
+      <workItem from="1523882333519" duration="2038000" />
+      <workItem from="1523928126311" duration="12855000" />
+      <workItem from="1523962688625" duration="2377000" />
+      <workItem from="1524029667703" duration="9084000" />
+      <workItem from="1524051653177" duration="261000" />
+      <workItem from="1524100184627" duration="619000" />
+      <workItem from="1524100977377" duration="2400000" />
+      <workItem from="1524132641183" duration="1833000" />
+      <workItem from="1524134942788" duration="398000" />
+      <workItem from="1524137173953" duration="2126000" />
+      <workItem from="1524185848830" duration="15811000" />
+      <workItem from="1524304735358" duration="152000" />
+      <workItem from="1524445244049" duration="7450000" />
+      <workItem from="1524532629246" duration="11542000" />
+      <workItem from="1524618345369" duration="7595000" />
+      <workItem from="1524635867430" duration="2173000" />
+      <workItem from="1524705552850" duration="6971000" />
+      <workItem from="1524726488962" duration="1544000" />
+      <workItem from="1524792844653" duration="767000" />
+      <workItem from="1524878229676" duration="1642000" />
+      <workItem from="1525222461801" duration="6100000" />
+      <workItem from="1525326395536" duration="776000" />
+      <workItem from="1525750385436" duration="1981000" />
+      <workItem from="1525861356841" duration="1346000" />
+      <workItem from="1525929603634" duration="1604000" />
+      <workItem from="1526001206520" duration="6615000" />
+      <workItem from="1526284042426" duration="5055000" />
+      <workItem from="1526450514318" duration="1720000" />
+      <workItem from="1526950904547" duration="18310000" />
+      <workItem from="1526978917849" duration="5403000" />
+      <workItem from="1527039477577" duration="4344000" />
+      <workItem from="1527065196714" duration="356000" />
+      <workItem from="1527155147873" duration="2675000" />
+      <workItem from="1527158003387" duration="164000" />
+      <workItem from="1527210040911" duration="23880000" />
+      <workItem from="1527468826089" duration="22253000" />
+      <workItem from="1527558588055" duration="3952000" />
+      <workItem from="1527733101311" duration="6190000" />
+      <workItem from="1527761574582" duration="4805000" />
+      <workItem from="1527835181457" duration="10784000" />
+      <workItem from="1528074675893" duration="4783000" />
+      <workItem from="1528095390453" duration="5663000" />
+      <workItem from="1528161124958" duration="21524000" />
+      <workItem from="1528247593738" duration="16794000" />
+      <workItem from="1528333639666" duration="5465000" />
+      <workItem from="1528419927981" duration="16116000" />
+      <workItem from="1528508098080" duration="9607000" />
+      <workItem from="1528696633507" duration="3354000" />
+      <workItem from="1528788937757" duration="6670000" />
+      <workItem from="1528856945862" duration="2534000" />
+      <workItem from="1529029593904" duration="1063000" />
+      <workItem from="1529045441026" duration="9804000" />
+      <workItem from="1529369923413" duration="6320000" />
+      <workItem from="1529458588890" duration="3967000" />
+      <workItem from="1529548032394" duration="1299000" />
+      <workItem from="1529550146348" duration="148000" />
+      <workItem from="1529571853291" duration="2324000" />
+      <workItem from="1529631726939" duration="6329000" />
+      <workItem from="1529908261739" duration="928000" />
+      <workItem from="1529922932828" duration="1363000" />
+      <workItem from="1529940052944" duration="1066000" />
+      <workItem from="1530165473700" duration="734000" />
+      <workItem from="1530182101820" duration="1988000" />
+      <workItem from="1530240415740" duration="2854000" />
+      <workItem from="1530601755548" duration="619000" />
+      <workItem from="1530666574197" duration="2715000" />
+      <workItem from="1530690308092" duration="5134000" />
+      <workItem from="1530777750545" duration="1153000" />
+      <workItem from="1531275436130" duration="1105000" />
+      <workItem from="1531377486141" duration="687000" />
+      <workItem from="1531385440744" duration="3172000" />
+      <workItem from="1531389105390" duration="2729000" />
+      <workItem from="1531444803363" duration="17013000" />
+      <workItem from="1531471820447" duration="3670000" />
+      <workItem from="1531725282284" duration="1096000" />
+      <workItem from="1531964062034" duration="685000" />
+      <workItem from="1531964845937" duration="1087000" />
+      <workItem from="1531980249101" duration="13121000" />
+      <workItem from="1532049432261" duration="18744000" />
+      <workItem from="1532315802967" duration="4442000" />
+      <workItem from="1532329620235" duration="9673000" />
+      <workItem from="1532586600711" duration="532000" />
+      <workItem from="1532588596541" duration="2204000" />
+      <workItem from="1532941513141" duration="2362000" />
+      <workItem from="1533003706754" duration="2030000" />
+      <workItem from="1533085572656" duration="3738000" />
+      <workItem from="1533111056849" duration="3531000" />
+      <workItem from="1533116926378" duration="243000" />
+      <workItem from="1533521833305" duration="10273000" />
+      <workItem from="1533541167175" duration="583000" />
+      <workItem from="1533718093923" duration="17000" />
+      <workItem from="1533778213251" duration="1798000" />
+      <workItem from="1533880983768" duration="864000" />
+      <workItem from="1534138661262" duration="7762000" />
+      <workItem from="1534217339788" duration="2652000" />
+      <workItem from="1534230176824" duration="23000" />
+      <workItem from="1534230902676" duration="1386000" />
+      <workItem from="1534233835965" duration="1231000" />
+      <workItem from="1534295563937" duration="2496000" />
+      <workItem from="1534394126246" duration="2318000" />
+      <workItem from="1534902546510" duration="12000" />
+      <workItem from="1535074128440" duration="672000" />
+      <workItem from="1535167866388" duration="456000" />
+      <workItem from="1536299391367" duration="374000" />
+      <workItem from="1536716764059" duration="651000" />
+      <workItem from="1536803101058" duration="289000" />
+      <workItem from="1537497457610" duration="838000" />
+      <workItem from="1539238055540" duration="41000" />
+      <workItem from="1539238146560" duration="29000" />
+      <workItem from="1539570217671" duration="1116000" />
+      <workItem from="1539737907126" duration="1559000" />
+      <workItem from="1540283917679" duration="517000" />
+      <workItem from="1540456103102" duration="1366000" />
+      <workItem from="1540522922361" duration="392000" />
+      <workItem from="1540541696673" duration="1599000" />
+      <workItem from="1540861502106" duration="1627000" />
+      <workItem from="1540867086970" duration="2016000" />
+      <workItem from="1540949146251" duration="1772000" />
+      <workItem from="1540970894940" duration="5530000" />
+      <workItem from="1553049394076" duration="7908000" />
+    </task>
+    <task id="LOCAL-00001">
+      <created>1528706668088</created>
+      <option name="number" value="00001" />
+      <option name="presentableId" value="LOCAL-00001" />
+      <option name="project" value="LOCAL" />
+      <updated>1528706668088</updated>
+    </task>
+    <task id="LOCAL-00002">
+      <created>1528792836945</created>
+      <option name="number" value="00002" />
+      <option name="presentableId" value="LOCAL-00002" />
+      <option name="project" value="LOCAL" />
+      <updated>1528792836946</updated>
+    </task>
+    <task id="LOCAL-00003">
+      <created>1534145057330</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1534145057330</updated>
+    </task>
+    <option name="localTasksCounter" value="4" />
+    <servers />
+  </component>
+  <component name="TestHistory">
+    <history-entry file="MesTest_TankerIncomingTest - 2018.04.20 at 10h 23m 46s.xml">
+      <configuration name="MesTest.TankerIncomingTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="MesTest_RandomTest - 2018.04.20 at 10h 51m 21s.xml">
+      <configuration name="MesTest.RandomTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="MesTest_RandomTest - 2018.04.20 at 10h 51m 45s.xml">
+      <configuration name="MesTest.RandomTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="MesTest_FactorymilkTankTest - 2018.04.20 at 11h 10m 32s.xml">
+      <configuration name="MesTest.FactorymilkTankTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 08m 52s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 09m 51s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 12m 00s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 13m 39s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 14m 15s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="CreateQRCodeTest_transporterInfoTest - 2018.06.12 at 16h 16m 24s.xml">
+      <configuration name="CreateQRCodeTest.transporterInfoTest" configurationId="JUnit" />
+    </history-entry>
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="1510725000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
+    <layout>
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.22541603" />
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
+      <window_info id="Capture Tool" order="2" />
+      <window_info id="UI Designer" order="3" />
+      <window_info id="Image Layers" order="4" />
+      <window_info id="Web" order="5" side_tool="true" />
+      <window_info id="Favorites" order="6" side_tool="true" />
+      <window_info id="Designer" order="7" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" weight="0.32915717" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.5754098" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.52640265" />
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="6" />
+      <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" order="8" weight="0.4704918" />
+      <window_info anchor="bottom" id="Java Enterprise" order="9" />
+      <window_info anchor="bottom" id="Version Control" order="10" weight="0.37953794" />
+      <window_info anchor="bottom" id="Spring" order="11" />
+      <window_info anchor="bottom" id="Terminal" order="12" />
+      <window_info anchor="bottom" id="Application Servers" order="13" weight="0.47571743" />
+      <window_info anchor="bottom" id="Database Changes" order="14" show_stripe_button="false" />
+      <window_info anchor="right" id="Commander" order="0" weight="0.4" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.31770045" />
+      <window_info anchor="right" id="Palette" order="2" />
+      <window_info anchor="right" id="Database" order="3" weight="0.32953683" />
+      <window_info anchor="right" id="Ant Build" order="4" weight="0.3553531" />
+      <window_info anchor="right" id="Palette&#9;" order="5" />
+      <window_info anchor="right" id="Capture Analysis" order="6" />
+      <window_info anchor="right" id="Theme Preview" order="7" />
+      <window_info anchor="right" id="Maven Projects" order="8" />
+    </layout>
+    <layout-to-restore>
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2193646" />
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
+      <window_info id="Capture Tool" order="2" />
+      <window_info id="UI Designer" order="3" />
+      <window_info id="Image Layers" order="4" />
+      <window_info id="Web" order="5" side_tool="true" />
+      <window_info id="Favorites" order="6" side_tool="true" />
+      <window_info id="Designer" order="7" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" weight="0.32915717" />
+      <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.21782178" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.41419142" />
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="6" />
+      <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" order="8" weight="0.38768718" />
+      <window_info anchor="bottom" id="Java Enterprise" order="9" />
+      <window_info anchor="bottom" id="Version Control" order="10" weight="0.37953794" />
+      <window_info anchor="bottom" id="Spring" order="11" />
+      <window_info anchor="bottom" id="Terminal" order="12" />
+      <window_info anchor="bottom" id="Application Servers" order="13" weight="0.47571743" />
+      <window_info anchor="bottom" id="Database Changes" order="14" show_stripe_button="false" />
+      <window_info anchor="right" id="Commander" order="0" weight="0.4" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.31770045" />
+      <window_info anchor="right" id="Palette" order="2" />
+      <window_info anchor="right" id="Database" order="3" weight="0.32953683" />
+      <window_info anchor="right" id="Ant Build" order="4" weight="0.3553531" />
+      <window_info anchor="right" id="Palette&#9;" order="5" />
+      <window_info anchor="right" id="Capture Analysis" order="6" />
+      <window_info anchor="right" id="Theme Preview" order="7" />
+      <window_info anchor="right" id="Maven Projects" order="8" />
+    </layout-to-restore>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="1" />
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="VcsManagerConfiguration">
+    <option name="LAST_COMMIT_MESSAGE" value="" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/CarCipController.java</url>
+          <line>195</line>
+          <properties />
+          <option name="timeStamp" value="64" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/service/impl/FactorymilkTankServiceImpl.java</url>
+          <line>317</line>
+          <properties />
+          <option name="timeStamp" value="75" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/TransporterInfoController.java</url>
+          <line>211</line>
+          <properties />
+          <option name="timeStamp" value="83" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/util/NetUtils.java</url>
+          <line>309</line>
+          <properties />
+          <option name="timeStamp" value="85" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/test/com/guangming/service/CarGpsTest.java</url>
+          <line>103</line>
+          <properties />
+          <option name="timeStamp" value="92" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/FreshmilkTransportController.java</url>
+          <line>162</line>
+          <properties />
+          <option name="timeStamp" value="96" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/service/impl/CarGpsServiceImpl.java</url>
+          <line>428</line>
+          <properties />
+          <option name="timeStamp" value="104" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/MESController.java</url>
+          <line>134</line>
+          <properties />
+          <option name="timeStamp" value="113" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/HandoverController.java</url>
+          <line>236</line>
+          <properties />
+          <option name="timeStamp" value="114" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/UserInfoController.java</url>
+          <line>70</line>
+          <properties />
+          <option name="timeStamp" value="124" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/guangming/web/FreshmilkTransportController.java</url>
+          <line>225</line>
+          <properties />
+          <option name="timeStamp" value="126" />
+        </line-breakpoint>
+      </breakpoints>
+      <breakpoints-dialog>
+        <breakpoints-dialog />
+      </breakpoints-dialog>
+    </breakpoint-manager>
+  </component>
+  <component name="antWorkspaceConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="FILTER_TARGETS" value="false" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/ChangeCarnoLogService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="378">
+          <caret line="21" column="12" selection-start-line="21" selection-start-column="12" selection-end-line="21" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/driverInfo.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="6" column="6" selection-start-line="6" selection-start-column="6" selection-end-line="6" selection-end-column="6" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/TransporterInfoMapper.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="819">
+          <caret line="44" column="8" selection-start-line="44" selection-start-column="8" selection-end-line="44" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/TransporterInfoMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="22533">
+          <caret line="1073" column="45" selection-start-line="1073" selection-start-column="45" selection-end-line="1073" selection-end-column="45" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/model/TransporterInfo.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="378">
+          <caret line="26" column="30" selection-start-line="26" selection-start-column="19" selection-end-line="26" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/model/ChangeCarnoLog.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="399">
+          <caret line="22" selection-start-line="22" selection-end-line="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/ChangeCarnoLogServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3402">
+          <caret line="177" column="17" selection-start-line="177" selection-start-column="17" selection-end-line="177" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/FreshmilkHandoverService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="462">
+          <caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/FreshmilkHandoverServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2352">
+          <caret line="125" column="48" selection-start-line="125" selection-start-column="48" selection-end-line="125" selection-end-column="48" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/ImagesUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="84">
+          <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/ImageToByte.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="10" column="49" selection-start-line="10" selection-start-column="49" selection-end-line="10" selection-end-column="49" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/MilkCylinderController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="462">
+          <caret line="37" column="58" selection-start-line="37" selection-start-column="58" selection-end-line="37" selection-end-column="58" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/MilkCylinderService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="210">
+          <caret line="13" column="24" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/MilkCylinderServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="462">
+          <caret line="34" column="48" selection-start-line="34" selection-start-column="38" selection-end-line="34" selection-end-column="58" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/MilkCylinderMapper.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="399">
+          <caret line="24" column="24" selection-start-line="24" selection-start-column="24" selection-end-line="24" selection-end-column="24" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/MilkCylinderMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3423">
+          <caret line="163" column="44" selection-start-line="163" selection-start-column="44" selection-end-line="163" selection-end-column="44" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/FreshmilkHandoverController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="210">
+          <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/FactorymilkTankMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4557">
+          <caret line="217" column="4" selection-start-line="217" selection-start-column="4" selection-end-line="217" selection-end-column="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/FactorymilkTankService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="273">
+          <caret line="16" column="26" selection-start-line="16" selection-start-column="26" selection-end-line="16" selection-end-column="26" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/FactorymilkTankMapper.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="399">
+          <caret line="24" column="27" selection-start-line="24" selection-start-column="27" selection-end-line="24" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/FactorymilkTankServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3780">
+          <caret line="180" column="52" selection-start-line="180" selection-start-column="52" selection-end-line="180" selection-end-column="52" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/FactorymilkTankController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3213">
+          <caret line="171" column="9" selection-start-line="171" selection-start-column="9" selection-end-line="171" selection-end-column="9" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/SupplierdemandPlanMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="27594">
+          <caret line="1314" column="78" selection-start-line="1314" selection-start-column="78" selection-end-line="1314" selection-end-column="78" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/supplierdemandPlans.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4809">
+          <caret line="229" column="10" selection-start-line="229" selection-start-column="10" selection-end-line="229" selection-end-column="10" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/handoverDetails.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2625">
+          <caret line="125" column="27" selection-start-line="125" selection-start-column="27" selection-end-line="125" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/handovernosDetailNew.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="25431">
+          <caret line="1211" column="20" selection-start-line="1211" selection-start-column="20" selection-end-line="1211" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/logisticsCos.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="6951">
+          <caret line="331" column="16" selection-start-line="331" selection-start-column="16" selection-end-line="341" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/UserInfoController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="6699">
+          <caret line="339" column="68" selection-start-line="339" selection-start-column="12" selection-end-line="339" selection-end-column="68" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/VerifyCodeUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="84">
+          <caret line="18" selection-start-line="18" selection-end-line="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/NetUtils.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2520">
+          <caret line="146" column="41" selection-start-line="146" selection-start-column="41" selection-end-line="146" selection-end-column="41" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/admin/SuperUserController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/AuthImageController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="252">
+          <caret line="25" column="3" selection-start-line="25" selection-start-column="3" selection-end-line="25" selection-end-column="3" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/CheckUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1932">
+          <caret line="95" column="57" selection-start-line="95" selection-start-column="57" selection-end-line="95" selection-end-column="57" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/mapper.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="273">
+          <caret line="13" column="11" selection-start-line="13" selection-start-column="11" selection-end-line="13" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/map.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4788">
+          <caret line="228" column="24" selection-start-line="228" selection-start-column="24" selection-end-line="228" selection-end-column="24" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/contentBefore.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="5817">
+          <caret line="277" column="39" selection-start-line="277" selection-start-column="39" selection-end-line="277" selection-end-column="39" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/login.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2877">
+          <caret line="137" column="43" selection-start-line="137" selection-start-column="43" selection-end-line="137" selection-end-column="43" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Web/WEB-INF/jsp/newAdmin/userInfos.jsp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1365">
+          <caret line="65" column="30" selection-start-line="65" selection-start-column="30" selection-end-line="65" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/admin/AdminController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2520">
+          <caret line="142" column="34" selection-start-line="142" selection-start-column="34" selection-end-line="142" selection-end-column="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/util/EncodingTool.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="9" column="34" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/appWebService.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1575">
+          <caret line="75" column="72" selection-start-line="75" selection-start-column="56" selection-end-line="75" selection-end-column="72" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/CarGpsController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2394">
+          <caret line="136" column="39" selection-start-line="136" selection-start-column="39" selection-end-line="136" selection-end-column="39" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/CarGpsService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="651">
+          <caret line="34" column="11" selection-start-line="34" selection-start-column="11" selection-end-line="34" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/CarGpsMapper.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="714">
+          <caret line="40" selection-start-line="40" selection-end-line="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/dao/CarGpsMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="8757">
+          <caret line="417" column="17" selection-start-line="417" selection-start-column="17" selection-end-line="417" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/SupplierdemandPlanController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1218">
+          <caret line="78" column="77" selection-start-line="78" selection-start-column="77" selection-end-line="78" selection-end-column="77" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/MESController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="15435">
+          <caret line="757" selection-start-line="757" selection-end-line="757" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/web/CarCipController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4620">
+          <caret line="239" column="19" selection-start-line="239" selection-start-column="19" selection-end-line="239" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/applicationContext.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="294">
+          <caret line="14" column="53" selection-start-line="14" selection-start-column="53" selection-end-line="14" selection-end-column="53" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/guangming/service/impl/CarGpsServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="101">
+          <caret line="134" column="13" lean-forward="true" selection-start-line="134" selection-start-column="13" selection-end-line="134" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/jdbc.properties">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="231">
+          <caret line="11" selection-end-line="11" />
+        </state>
+      </provider>
+    </entry>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <last-edited>guangming:war exploded</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+                <option value="0.5" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>Spring (guangming)|Spring</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>MuleESB-3.9.1</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.7</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>guangming</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectJDKs.UI">
+        <settings>
+          <last-edited>1.7</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>lib</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
+</project>

+ 36 - 0
.project

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>GuangMing</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+	</natures>
+</projectDescription>

+ 12 - 0
.settings/.jsdtscope

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="Web"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+		<attributes>
+			<attribute name="hide" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+	<classpathentry kind="output" path=""/>
+</classpath>

+ 26 - 0
.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,26 @@
+eclipse.preferences.version=1
+encoding//Web/css/index.css=UTF-8
+encoding//src/com/guangming/interceptor/PageInterceptor.java=UTF-8
+encoding//src/com/guangming/service/impl/ActivityInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/BannerShanrongServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/CompanyInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/DiscountInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/JiFenHistoryServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ProductInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/RongYunTokenServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/SignUpInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/TypeInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/UserInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/AdminInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ArchivesInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/BusinessInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/DevelopmentConditionServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/EconomicDataServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ElementInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ProjectImageServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ProjectInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ResourceDetailServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ResourceInfoServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/ResourceLevelServiceImpl.java=UTF-8
+encoding//src/com/guangming/service/impl/UploadInfoServiceImpl.java=UTF-8
+encoding/<project>=UTF-8

+ 7 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7

+ 8 - 0
.settings/org.eclipse.wst.common.component

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="GuangMing">
+        <wb-resource deploy-path="/" source-path="/Web" tag="defaultRootSource"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+        <property name="java-output-path" value="/guangming/build/classes"/>
+        <property name="context-root" value="GuangMing"/>
+    </wb-module>
+</project-modules>

+ 10 - 0
.settings/org.eclipse.wst.common.project.facet.core.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <runtime name="Apache Tomcat v7.0"/>
+  <fixed facet="wst.jsdt.web"/>
+  <fixed facet="jst.web"/>
+  <fixed facet="java"/>
+  <installed facet="java" version="1.7"/>
+  <installed facet="jst.web" version="3.0"/>
+  <installed facet="wst.jsdt.web" version="1.0"/>
+</faceted-project>

+ 1 - 0
.settings/org.eclipse.wst.jsdt.ui.superType.container

@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 1 - 0
.settings/org.eclipse.wst.jsdt.ui.superType.name

@@ -0,0 +1 @@
+Window

+ 2 - 0
.settings/org.eclipse.wst.ws.service.policy.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.wst.ws.service.policy.projectEnabled=false

+ 3 - 0
Web/META-INF/MANIFEST.MF

@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+

+ 21 - 0
Web/WEB-INF/el-common.tld

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<taglib xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
+        version="2.1">
+
+    <tlib-version>1.0</tlib-version>
+    <short-name>el</short-name>
+    <uri>http://mycompany.com</uri>
+
+    <function>
+        <name>toJsonString</name>
+
+        <function-class>com.guangming.tag.ElFunctions</function-class>
+        <function-signature>java.lang.String toJsonString(java.lang.Object)</function-signature>
+        <description>format json</description>
+        <example>${el:toJsonString(value)}</example>
+    </function>
+
+</taglib>

+ 1 - 0
Web/WEB-INF/html/index.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=format-detection content="telephone=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><title>奶源追溯系统</title><link href=../static/tzccb/css/app.d775c51d1096e0ad6e77bf30cca0ace6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=../static/tzccb/js/manifest.07f20f593fa709fe913c.js></script><script type=text/javascript src=../static/tzccb/js/vendor.77d6bff14109758fe1c2.js></script><script type=text/javascript src=../static/tzccb/js/app.d5f5afaa7d2aa8a68cb7.js></script></body></html>

+ 1 - 0
Web/WEB-INF/html/milk.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=format-detection content="telephone=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><script src=http://res.wx.qq.com/open/js/jweixin-1.2.0.js></script><script type=text/javascript src=cordova.js></script><title>光明</title><link href=./static/milk/css/app.8a609bb43d209cc82aa99bdb491d437c.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/milk/js/manifest.38f5534e2a752dcb6fdc.js></script><script type=text/javascript src=./static/milk/js/vendor.10d164ea32522da5baa8.js></script><script type=text/javascript src=./static/milk/js/app.a0b662f1a088b3edae2a.js></script></body></html>

+ 369 - 0
Web/WEB-INF/jsp/dailogue.jsp

@@ -0,0 +1,369 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+<link rel="stylesheet" href="${pageContext.request.contextPath }/css/dailogue.css">
+<script src="http://cdn.ronghub.com/RongIMLib-2.2.0.min.js"></script>
+<script src="../js/jquery.min.js"></script>
+<script src="../js/dropload.min.js"></script>
+<link rel="stylesheet" href="../css/reset.css">
+<script src="${pageContext.request.contextPath }/js/jquery.min.js"></script>
+
+<title>与 ${name} 的聊天</title>
+</head>
+<body>
+<input type="hidden" id="self" name="self" value="${self}"/>
+<input type="hidden" id="other" name="other" value="${other}"/>
+<input type="hidden" id="selfDir" name="selfDir" value="${selfDir}"/>
+<input type="hidden" id="otherDir" name="selfDir" value="${otherDir}"/>
+<!-- 对话列表 -->
+		<ul class="pushChat">
+			
+		</ul>
+
+	<!-- 发送框 -->
+		<header>
+			<textarea placeholder="说点什么…"></textarea>
+			<section><img src="../images/send.png" id="send"></section>
+		</header>
+		<div id="beforeheader"></div>
+
+	<script src="${pageContext.request.contextPath }/js/dropload.min.js"></script>
+	<script>
+	//下拉加载
+	$('.pushChat').dropload({
+	    scrollArea : window,
+	    loadUpFn : function(me){
+	    	loadMore();
+	    	setTimeout(function(){
+                 me.resetload();
+             },1000);
+	    }
+	});
+	
+var timer;
+	$('textarea').focusin(function(){
+		clearInterval(timer);   
+		timer = setInterval(function(){
+			if($('textarea').val().length > 0) {
+				$('#send').attr('src','../images/send-ed.png');
+			} else {
+				$('#send').attr('src','../images/send.png');
+			}
+		},10);
+	});
+	
+	
+		var userid = $("#self").val();
+		var touserid = $('#other').val();
+		
+		
+		$(document).ready(function(){
+	    	initRongYun();
+	  });
+	  
+var _rongKey =  userid;
+
+function initRongYun(){
+	
+	
+	$.ajax({
+		url:'../rong/getToken',
+		type:'get',
+		data:{rongKey:_rongKey},
+		success:function(e){
+			// 初始化。
+			 RongIMClient.init(e.appKey);
+			// 设置连接监听状态 ( status 标识当前连接状态)
+			 // 连接状态监听器
+			 RongIMClient.setConnectionStatusListener({
+			    onChanged: function (status) {
+			        switch (status) {
+			            //链接成功
+			            case RongIMLib.ConnectionStatus.CONNECTED:
+			                console.log('链接成功');
+			                break;
+			            //正在链接
+			            case RongIMLib.ConnectionStatus.CONNECTING:
+			                console.log('正在链接');
+			                break;
+			            //重新链接
+			            case RongIMLib.ConnectionStatus.DISCONNECTED:
+			                console.log('断开连接');
+			                break;
+			            //其他设备登录
+			            case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:
+			                console.log('其他设备登录');
+			                break;
+			              //网络不可用
+			            case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE:
+			              console.log('网络不可用');
+			              break;
+			            }
+			    }});
+
+			 // 消息监听器
+			 RongIMClient.setOnReceiveMessageListener({
+			    // 接收到的消息
+			    onReceived: function (message) {
+			        // 判断消息类型
+			        switch(message.messageType){
+			            case RongIMClient.MessageType.TextMessage:
+			                   // 发送的消息内容将会被打印
+			                console.log(message.content.content);
+			                   if(userid!=message.senderUserId){
+			                	   
+			                	   var li = '<li class="dailogue friend" friendid="'+touserid+'"><img src="'+$('#otherDir').val()+'"  onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-other"><span class="left-trangle"></span><span class="left">'+message.content.content+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+			               		$('.pushChat').append(li);
+			               		gotobottom();
+			                   }
+			                break;
+			            case RongIMClient.MessageType.VoiceMessage:
+			                // 对声音进行预加载                
+			                // message.content.content 格式为 AMR 格式的 base64 码
+			                RongIMLib.RongIMVoice.preLoaded(message.content.content);
+			                break;
+			            case RongIMClient.MessageType.ImageMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.DiscussionNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.LocationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.RichContentMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.DiscussionNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.InformationNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.ContactNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.ProfileNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.CommandNotificationMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.CommandMessage:
+			                // do something...
+			                break;
+			            case RongIMClient.MessageType.UnknownMessage:
+			                // do something...
+			                break;
+			            default:
+			                // 自定义消息
+			                // do something...
+			        }
+			    }
+			});
+			 
+			
+			 var token = e.token;
+
+			 // 连接融云服务器。
+			       RongIMClient.connect(token, {
+			         onSuccess: function(userId) {
+			           console.log("Login successfully." + userId);
+			         },
+			         onTokenIncorrect: function() {
+			           console.log('token无效');
+			         },
+			         onError:function(errorCode){
+			               var info = '';
+			               switch (errorCode) {
+			                 case RongIMLib.ErrorCode.TIMEOUT:
+			                   info = '超时';
+			                   break;
+			                 case RongIMLib.ErrorCode.UNKNOWN_ERROR:
+			                   info = '未知错误';
+			                   break;
+			                 case RongIMLib.ErrorCode.UNACCEPTABLE_PaROTOCOL_VERSION:
+			                   info = '不可接受的协议版本';
+			                   break;
+			                 case RongIMLib.ErrorCode.IDENTIFIER_REJECTED:
+			                   info = 'appkey不正确';
+			                   break;
+			                 case RongIMLib.ErrorCode.SERVER_UNAVAILABLE:
+			                   info = '服务器不可用';
+			                   break;
+			               }
+			               console.log(errorCode+":"+info);
+			             }
+			       });	
+			
+		}
+		
+	
+	});
+		  
+	
+	   
+		  
+ }
+	
+	
+		// 发送按钮
+			$('section').on('click',function(){
+				var cont = $('textarea').val();
+				if(cont == ''){alert('请输入内容');}
+					else{
+						
+
+						// 定义消息类型,文字消息使用 RongIMLib.TextMessage
+					       var msg = new RongIMLib.TextMessage({content:cont,extra:"附加信息"});
+					       //或者使用RongIMLib.TextMessage.obtain 方法.具体使用请参见文档
+					       //var msg = RongIMLib.TextMessage.obtain("hello");
+					       var conversationtype = RongIMLib.ConversationType.PRIVATE; // 私聊
+					       var targetId = touserid; // 目标 Id
+					       RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, {
+					                      // 发送消息成功
+					                      onSuccess: function (message) {
+					                          //message 为发送的消息对象并且包含服务器返回的消息唯一Id和发送消息时间戳
+					                          var li = '<li class="dailogue self" userid="'+userid+'"><a href="../main/'
+												+userid+'" ><img src="'+$('#selfDir').val()+'" onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-self"></a><span class="right-trangle"></span><span class="right">'+cont+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+												$('ul').append(li);
+												$('textarea').val('');
+					                          console.log("Send successfully");
+					                      },
+					                      onError: function (errorCode,message) {
+					                          var info = '';
+					                          switch (errorCode) {
+					                              case RongIMLib.ErrorCode.TIMEOUT:
+					                                  info = '超时';
+					                                  break;
+					                              case RongIMLib.ErrorCode.UNKNOWN_ERROR:
+					                                  info = '未知错误';
+					                                  break;
+					                              case RongIMLib.ErrorCode.REJECTED_BY_BLACKLIST:
+					                                  info = '在黑名单中,无法向对方发送消息';
+					                                  break;
+					                              case RongIMLib.ErrorCode.NOT_IN_DISCUSSION:
+					                                  info = '不在讨论组中';
+					                                  break;
+					                              case RongIMLib.ErrorCode.NOT_IN_GROUP:
+					                                  info = '不在群组中';
+					                                  break;
+					                              case RongIMLib.ErrorCode.NOT_IN_CHATROOM:
+					                                  info = '不在聊天室中';
+					                                  break;
+					                              default :
+					                                  info = x;
+					                                  break;
+					                          }
+					                          console.log('发送失败:' + info);
+					                      }
+					                  }
+					              );
+					       
+						$.ajax({
+							url:'../chatInfo/save',
+							type:'post',
+							data:{userId:userid,toUserId:touserid,content:cont,contentType:1,state:0},
+							success:function(msg){
+								//alert(msg.msg);
+							}
+						});
+
+					}
+			});
+
+		// 接收消息
+			 var page = 0;
+			function message(){
+				page += 1;
+				$.ajax({
+					url:'../chatInfo/page',
+					type:'get',
+					data:{
+						"pageNumber" : 5,
+						"currentPage" : page,
+						toUserId:touserid,
+						userId:userid
+					},
+					success:function(data){
+						var mes = data.data.pp;
+						var li ='';
+						for (var i = mes.length-1; i >= 0; i--) {
+							if(mes[i].userId == userid){
+								li = '<li class="dailogue self" userid="'+mes[i].userId+'" infoid="'+mes[i].infoId+'"><a href="../main/'
+								+userid+'" ><img src="'+$('#selfDir').val()+'" onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-self"></a><span class="right-trangle"></span><span class="right">'+mes[i].content+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+							}else{
+								li = '<li class="dailogue friend" friendid="'+mes[i].userId+'" infoid="'+mes[i].infoId+'"><a href="../main/'
+								+touserid+'" ><img src="'+$('#otherDir').val()+'"  onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-other"></a><span class="left-trangle"></span><span class="left">'+mes[i].content+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+							}
+							// 每隔十条信息显示时间
+							if(i%10 == 0){
+								var time = '<li class="time"><time>'+mes[i].time+'</time></li>';
+							$('ul').append(time);
+							}
+
+							$('ul').append(li);
+						};
+						gotobottom();
+					}
+				});
+				//setInterval('message', 3000);
+			
+			}
+			$('document').ready(message);
+
+function gotobottom(){
+	var maxheight = $(document).height() - 20;
+	$(document.body).animate({
+		scrollTop : maxheight
+	}, 10);
+}
+$('#send').click(gotobottom);
+
+function loadMore(){
+	 page += 1;
+	$.ajax({
+		url:'../chatInfo/page',
+		type:'get',
+		data:{
+			"pageNumber" : 5,
+			"currentPage" : page,
+			 toUserId:touserid,
+			 userId:userid
+		},
+		success:function(data){
+			var mes = data.data.pp;
+			var li ='';
+			for (var i = 0; i <= mes.length-1; i++) {
+				if(mes[i].userId == userid){
+					li = '<li class="dailogue self" userid="'+mes[i].userId+'" infoid="'+mes[i].infoId+'"><a href="../main/'
+					+userid+'" ><img src="'+$('#selfDir').val()+'" onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-self"></a><span class="right-trangle"></span><span class="right">'+mes[i].content+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+				}else{
+					li = '<li class="dailogue friend" friendid="'+mes[i].userId+'" infoid="'+mes[i].infoId+'"><a href="../main/'
+					+touserid+'" ><img src="'+$('#otherDir').val()+'"  onerror="javascript:this.src=\'../images/shadow.jpg\'" class="headicon-other"></a><span class="left-trangle"></span><span class="left">'+mes[i].content+'</span><div style="clear:both;"></div><div class="margin"></div></li>';
+				}
+				// 每隔十条信息显示时间
+				if(i%10 == 0){
+					var time = '<li class="time"><time>'+mes[i].time+'</time></li>';
+				$('ul').prepend(time);
+				}
+
+				$('ul').prepend(li);
+			};
+		}
+	});
+}
+
+</script>
+
+
+</body>
+</html>

+ 148 - 0
Web/WEB-INF/jsp/newAdmin/act.jsp

@@ -0,0 +1,148 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <div class="filter-bar" :gutter="20">
+        <%--<el-col :xs="24" :sm="6" :md="5" :lg="3">--%>
+        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-button type="primary" @click="exportData">导出</el-button>
+            <el-upload
+                    style="display: inline-block;margin-left: 10px;"
+                    action="../actInfo/upload"
+                    :on-success="onSuccess"
+                    :on-error="onError"
+                    :before-upload="beforeUpload"
+                    :show-file-list="false">
+                <el-button type="primary" :loading="uploading">导入</el-button>&nbsp;
+            </el-upload>
+        </el-col>
+    </div>
+    <el-table :data="rows"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading"
+              ref="table"
+              tableId="table"
+              id="table">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="name"
+                label="姓名">
+        </el-table-column>
+        <el-table-column
+                prop="tel"
+                label="手机">
+        </el-table-column>
+        <el-table-column
+                label="是否具备资格"
+                :formatter="hitFormatter">
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="total, sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script src="${pageContext.request.contextPath}/lib/Blob.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/FileSaver.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/xlsx.full.min.js"></script>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: function () {
+            return {
+                loading: false,
+                menu: '5',
+                rows: [],
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                filters: {
+                    name: ''
+                },
+                uploading: false
+            };
+        },
+        methods: {
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            getData: function () {
+
+                this.loading = true;
+                $.get({
+                    url: '../actInfo/byPage',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize
+                    }
+                }).then(function (res) {
+                    this.loading = false;
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.data
+                    }
+                }.bind(this))
+            },
+            hitFormatter: function (row) {
+                if (row.hit === 1) {
+                    return '是'
+                } else if (row.hit === 2) {
+                    return '否'
+                } else {
+                    return ''
+                }
+            },
+            exportData: function () {
+                var data = [['姓名', '手机号']].concat(this.rows.map(function (i) {
+                    return [i.name, i.tel];
+                }));
+                saveAsXLSX(data, '抽奖列表');
+            },
+            beforeUpload: function () {
+                this.uploading = true
+            },
+            onSuccess: function () {
+                this.uploading = false;
+                this.getData();
+            },
+            onError: function () {
+                this.uploading = false;
+                this.getData();
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 319 - 0
Web/WEB-INF/jsp/newAdmin/activityInfo.jsp

@@ -0,0 +1,319 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/ueditor/ueditor.config.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/ueditor/ueditor.all.js"></script>
+    <title>遇奇</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-form ref="form" :model="row_info"
+             label-width="120px">
+        
+        <el-form-item label="活动封面">
+            <el-upload
+                    class="avatar-uploader"
+                    action="../assets/uploadFile"
+                    :show-file-list="false"
+                    :on-success="contactAvatarSuccess">
+                <img v-if="avatar" :src="avatar" class="avatar">
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+            (尺寸910*500px,分辨率72,格式jpg,图片质量70)
+        </el-form-item>
+
+        <el-form-item
+                label="活动名称">
+            <el-input v-model="row_info.title"></el-input>
+        </el-form-item>
+        
+         <el-form-item label="活动内容">
+            <el-input
+                    type="textarea"
+                    :rows="2"
+                    v-model="row_info.content">
+
+            </el-input>
+        </el-form-item>
+        <el-form-item label="开始活动">
+        <el-tooltip :content="'开始活动'" placement="top">
+			  <el-switch
+			    v-model="start"
+			    on-color="#13ce66"
+			    off-color="#ff4949"
+			    >
+			  </el-switch>
+		</el-tooltip>
+		</el-form-item>
+		<el-form-item label="开始报名">
+        <el-tooltip :content="'开始报名'" placement="top">
+			  <el-switch
+			    v-model="sign_up"
+			    on-color="#13ce66"
+			    off-color="#ff4949"
+			    >
+			  </el-switch>
+		</el-tooltip>
+		</el-form-item>
+<!-- 		 <el-form-item label="活动内容">
+		 <el-tooltip :content="'开启报名'" placement="top">
+			  <el-switch
+			    v-model="row_info.signUpOpen"
+			    on-color="#13ce66"
+			    off-color="#ff4949"
+			    >
+			  </el-switch>
+		</el-tooltip>
+        </el-form-item> -->
+        <el-form-item>
+            <el-button
+                    type="primary" @click="onSubmit">{{edit?'保存':'保存'}}
+            </el-button>
+            <el-button>取消</el-button>
+        </el-form-item>
+    </el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+        	var id = getQueryString('id');
+            if (id) {
+                $.get({
+                    url: '../activityInfo/getActivityInfo',
+                    data: {
+                    	id: id
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                    	this.edit = true;
+                        if (res.data.realImg) {
+                            this.avatar = res.data.realImg;
+                        }
+
+                        this.row_info = res.data;
+                        if(this.row_info.state == 0 )
+                        	{
+                        		this.start = false;
+                        	}
+                        else
+                        	{
+                        		this.start = true;
+                        	}
+                        if(this.row_info.signUpOpen == 0 )
+                    	{
+                    		this.sign_up = false;
+                    	}
+                    	else
+                    	{
+                    		this.sign_up = true;
+                    	}
+                        
+/*                         var ue = this.editor;
+ */                        ue.addListener("ready", function () {
+                            //var arr = [];
+                            //arr.push("使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容");
+                            ue.setContent(res.data.imgContent, false);
+                        });
+                    }
+                }.bind(this));
+            }else{
+            	
+            }
+
+          /*   $.get({
+                url: '../industryInfo/all'
+            }).then(function (res) {
+                this.selectData = res.data;
+
+            }.bind(this));
+
+            $.get({
+                url: '../serviceInfo/all'
+            }).then(function (res) {
+                this.serviceData = res.data;
+
+            }.bind(this));
+ */
+            /* $.get({
+             url: '../caseType/all'
+             }).then(function (res) {
+             this.selectCaseTypeData = res;
+
+             }.bind(this)); */
+            //this.queryUser()
+        },
+        mounted: function () {
+           /*  this.editor = UE.getEditor('container', {
+                toolbars: [[
+                    'fullscreen',
+                    'source',
+                    'undo',
+                    'redo',
+                    'bold',
+                    'insertimage',
+                    'justify',
+                    'justifyleft', //居左对齐
+                    'justifyright', //居右对齐
+                    'justifycenter', //居中对齐
+                    'justifyjustify' //两端对齐
+                ]],
+                pasteplain: true,
+                retainOnlyLabelPasted: true
+            }); */
+        },
+        data: function () {
+            return {
+                menu: '8-4',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                edit: false,
+                start:true,
+                sign_up:false,
+                tab: '1',
+                row_info: {
+                	title: '',
+                	img: '',
+                	content: '',
+                	state:'',
+                	signUpOpen:''
+                	
+                },
+                selectData: [],
+                serviceData: [],
+                selectCaseTypeData: [],
+                dialogImageUrl: '',
+                dialogVisible: false,
+                fileList: [],
+                selectUserData: [],
+                editor: null,
+                authFlags: ['金牌认证', '银牌认证', '铜牌认证', '暂未认证'],
+                avatar: ''
+            }
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                if (this.row_info.img == '') {
+                    this.$message.warning('请插入图片');
+                } else {
+                	
+                	if(this.start)
+                		{
+                			this.row_info.state = 1;
+                		}
+                	else
+                		{
+                			this.row_info.state = 0;
+                		}
+                	
+                	if(this.sign_up)
+            		{
+            			this.row_info.signUpOpen = 1;
+            		}
+            	else
+            		{
+            			this.row_info.signUpOpen = 0;
+            		}
+
+                    var data = JSON.parse(JSON.stringify(this.row_info));
+/*                     data.imgContent = this.editor.getContent();
+ */                    //delete data.createTime;
+                    delete data.realImg;
+                 /*    delete data.investmentQuotaInfo;
+                    delete data.industryInfo; */
+                    console.log(data);
+                    $.post({
+                        url: this.edit ? '../activityInfo/update' : '../activityInfo/save',
+                        data: data
+                    }).then(function (res) {
+                        if (res.success) {
+                            if (!this.edit) {
+                                this.row_info.id = res.data;
+                            }
+                            this.edit = true;
+                            this.$message.success(this.edit ? '保存成功' : '创建成功');
+                        } else {
+                            this.$message.error(this.edit ? '保存失败' : '创建失败');
+                        }
+                    }.bind(this))
+                }
+            },
+            handleRemove: function (file, fileList) {
+                console.log(file, fileList);
+                this.fileList = fileList;
+                var img = "";
+                if (file.response) {
+                    img = file.response.data[0] + ";";
+                } else {
+                    var index = file.url.indexOf("yuqi");
+                    if (index > 0) {
+                        img = file.url.substr(index) + ";";
+                    }
+                }
+                console.log(img);
+                console.log(this.row_info.image);
+                this.row_info.image = this.row_info.image.replace(img, "");
+                console.log(this.row_info.image);
+
+            },
+            handlePictureCardPreview: function (file) {
+                this.dialogImageUrl = file.url;
+                this.dialogVisible = true;
+
+            },
+            handleAvatarScucess: function (res, file, fileList) {
+                this.fileList = fileList;
+                if (res.success) {
+                    this.row_info.image += res.data[0] + ";";
+                }
+
+            },
+            contactAvatarSuccess: function (res, file, fileList) {
+                if (res.success) {
+                    this.row_info.img = res.data[0];
+                }
+                this.avatar = URL.createObjectURL(file.raw);
+            },
+          /*   queryUser: function (query) {
+                $.get({
+                    url: '../user/getUserPage',
+                    data: {
+                        userName: query
+                    }
+                }).then(function (res) {
+                    this.selectUserData = res.data.UserInfoPage;
+                }.bind(this));
+            } */
+        }
+    })
+</script>
+
+
+</html>

+ 195 - 0
Web/WEB-INF/jsp/newAdmin/activityInfos.jsp

@@ -0,0 +1,195 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+      <div class="filters">
+        <el-button type="primary" @click="create()">创建</el-button>
+        <div class="num"> 共{{totalNumber}}行业</div>
+    </div>
+
+    <el-table :data="rows"
+              ref="table"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="title"
+                label="标题"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="state"
+                :formatter="formatStateFlag"
+                label="活动状态"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="signUpOpen"
+                :formatter="formatTypeFlag"
+                label="报名状态"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :formatter="timeFormatter"
+                label="创建时间"
+                align="center">
+        </el-table-column>
+     <!--    <el-table-column
+                prop="industryDesc"
+                label="行业描述"
+                align="center">
+        </el-table-column> -->
+
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">编辑</el-button>
+                <el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+            </div>
+        </el-table-column>
+    </el-table>
+
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getRows();
+        },
+        data: function () {
+            return {
+                menu: '8-4',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: []
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                $.get({
+                    url: '../activityInfo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                window.location = 'activityInfo?id=' + row.id;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../activityInfo/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            timeFormatter: function (row) {
+                return new Date(row.createTime).toLocaleString()
+            },
+            formatStateFlag: function (row) {
+            	
+              	 switch (row.state) {
+                   case 1:
+                       return '开始';
+                   case 0:
+                       return '关闭';
+                   default:
+                       return '未知';
+               }
+              },
+              formatTypeFlag: function (row) {
+              	
+               	 switch (row.signUpOpen) {
+                    case 1:
+                        return '开始';
+                    case 0:
+                        return '关闭';
+                    default:
+                        return '未知';
+                }
+               },
+            create: function () {
+                window.location = 'activityInfo';
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 121 - 0
Web/WEB-INF/jsp/newAdmin/add.jsp

@@ -0,0 +1,121 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>泰州建行管理平台</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-form label-width="120px">
+        <el-form-item label="名称">
+            <el-input v-model="poiInfo.name"></el-input>
+        </el-form-item>
+        <el-form-item label="地址">
+            <el-input v-model="poiInfo.address"></el-input>
+        </el-form-item>
+        <el-form-item label="经纬度">
+            <el-row :gutter="20">
+                <el-col :span="6">
+                    <el-input placeholder="经度" v-model="poiInfo.lat"></el-input>
+                </el-col>
+                <el-col :span="6">
+                    <el-input placeholder="纬度" v-model="poiInfo.lng"></el-input>
+                </el-col>
+            </el-row>
+        </el-form-item>
+        <el-form-item label="电话">
+            <el-input v-model="poiInfo.tel"></el-input>
+        </el-form-item>
+        <el-form-item label="所属支行">
+            <el-input v-model="poiInfo.superior"></el-input>
+        </el-form-item>
+        <el-form-item label="营业时间">
+            <el-input v-model="poiInfo.businessHours"></el-input>
+        </el-form-item>
+        <el-form-item label="支付行号">
+            <el-input v-model="poiInfo.code"></el-input>
+        </el-form-item>
+        <el-form-item label="隐藏">
+            <el-switch
+                    v-model="poiInfo.hide"
+                    on-text=""
+                    off-text=""
+                    on-value="1"
+                    off-value="0">
+            </el-switch>&nbsp;
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" @click="save" :loading="saving">保存</el-button>
+            <el-button @click="cancel">取消</el-button>
+        </el-form-item>
+    </el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            var id = getQueryString('id');
+            if (id) {
+                this.loading = true;
+                $.get({
+                    url: '../poi/info',
+                    data: {
+                        id: id
+                    },
+                    success: function (res) {
+                        this.loading = false;
+                        if (res.success) {
+                            res.data.hide = !!res.data.hide;
+                            this.poiInfo = res.data;
+                            this.edit = true;
+                        }
+                    }.bind(this)
+                })
+            }
+        },
+        data: function () {
+            return {
+                menu: '',
+                loading: false,
+                saving: false,
+                edit: false,
+                poiInfo: {
+                    hide: false
+                }
+            }
+        },
+        methods: {
+            save: function () {
+                this.saving = true;
+                var data = JSON.parse(JSON.stringify(this.poiInfo));
+                data.hide = data.hide ? 1 : 0;
+                $.post({
+                    url: this.edit ? '../poi/update' : '../poi/save',
+                    data: data,
+                    success: function (res) {
+                        this.saving = false;
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                        } else {
+                            this.$message.error('保存失败');
+                        }
+                    }.bind(this)
+                })
+            },
+            cancel: function () {
+                window.location.href = 'poi'
+            }
+        }
+    });
+</script>
+</html>

+ 111 - 0
Web/WEB-INF/jsp/newAdmin/aiChuangLog.jsp

@@ -0,0 +1,111 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>zouma.frame</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="typeName">
+			<el-input v-model="row_info.typeName"></el-input>
+		</el-form-item>
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="methodName">
+			<el-input v-model="row_info.methodName"></el-input>
+		</el-form-item>
+		<el-form-item label="methodResult">
+			<el-input v-model="row_info.methodResult"></el-input>
+		</el-form-item>
+		<el-form-item label="createTime">
+			<el-input v-model="row_info.createTime"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../aiChuangLog/getAiChuangLog',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../aiChuangLog/update' : '../aiChuangLog/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 176 - 0
Web/WEB-INF/jsp/newAdmin/aiChuangLogs.jsp

@@ -0,0 +1,176 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>zouma.frame</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="typeName"
+				label="typeName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="methodName"
+				label="methodName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="methodResult"
+				label="methodResult"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createTime"
+				label="createTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../aiChuangLog/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'aiChuangLog?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../aiChuangLog/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'aiChuangLog';
+			}
+		}
+	})
+</script>
+</html>
+

+ 536 - 0
Web/WEB-INF/jsp/newAdmin/allHandovernos.jsp

@@ -0,0 +1,536 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>全部交接单</title>
+</head>
+<style>
+    .el-dialog {
+        width: 240px;
+    }
+
+    .el-dialog__footer {
+        text-align: center;
+    }
+
+    .db-content-wrapper {
+        display: flex;
+        flex-direction: column;
+        overflow: auto !important;
+    }
+
+    .db-content {
+        flex-grow: 1;
+        padding: 0 25px !important;
+        overflow: hidden;
+    }
+
+    .filters {
+        margin-top: 25px;
+    }
+</style>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+
+
+<div class="db-body">
+    <template>
+        <aside class="db-menu-wrapper">
+            <c:set var="powerStr" value="${powerStr}"/>
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#8#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos">
+                        <el-menu-item index="0-1">全部交接单</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#9#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-1">
+                        <el-menu-item index="-1">待调度</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#10#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=1">
+                        <el-menu-item index="1">运输中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#11#')}">
+                    <el-submenu index="2">
+                        <template slot="title">牧场</template>
+                        <c:if test="${fn:contains(powerStr,'#12#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=2">
+                                <el-menu-item index="2-2">进入牧场</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#13#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=3">
+                                <el-menu-item index="2-3">进场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#14#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=4">
+                                <el-menu-item index="2-4">检测完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#15#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=5">
+                                <el-menu-item index="2-5">装奶完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#16#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=6">
+                                <el-menu-item index="2-6">出场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                            <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                            <%--</a>--%>
+                    </el-submenu>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#17#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=7">
+                        <el-menu-item index="7">返程中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#18#')}">
+                    <el-submenu index="3">
+                        <template slot="title">工厂</template>
+                        <c:if test="${fn:contains(powerStr,'#19#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">
+                                <el-menu-item index="3-9">进入工厂</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#20#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=10">
+                                <el-menu-item index="3-10">工厂取样</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">--%>
+                            <%--<el-menu-item index="3-9">采样&工厂接奶</el-menu-item>--%>
+                            <%--</a>--%>
+
+                    </el-submenu>
+                </c:if>
+                <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">--%>
+                <%--<el-menu-item index="10">加工厂接奶</el-menu-item>--%>
+                <%--</a>--%>
+                <c:if test="${fn:contains(powerStr,'#21#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">
+                        <el-menu-item index="11">交接单完成</el-menu-item>
+                    </a>
+                </c:if>
+
+
+                <c:if test="${fn:contains(powerStr,'#22#')}">
+
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-2">
+                        <el-menu-item index="-2">异常单</el-menu-item>
+                    </a>
+
+                    <%--<a href="${pageContext.request.contextPath}/admin/passPercent">--%>
+                    <%--<el-menu-item index="12">异常单</el-menu-item>--%>
+                    <%--</a>--%>
+                </c:if>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-3">
+                    <el-menu-item index="-3">作废</el-menu-item>
+                </a>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper">
+        <section class="db-content" id="contentBody">
+            <template>
+                <div class="filters">
+
+                    <%--<el-button type="primary" @click="create()">创建</el-button>--%>
+
+                    <el-col :xs="8" :sm="6" :md="4">
+                        <el-input placeholder="关键字" v-model="searchKey"></el-input>
+                    </el-col>
+
+                    &nbsp;&nbsp;&nbsp;
+                    <el-col :xs="6" :sm="4" :md="2">
+                        <el-button type="primary" @click="getRows">筛 选</el-button>
+                    </el-col>
+                    <el-col :xs="4" :sm="6" :md="8" :lg="15">
+                        <span style="font-size: 14px;color:#bfcbd9">关键字:交接单号/牧场名称/牧场代号/收货单位/计划物流公司/挂车号</span>
+                    </el-col>
+                    <el-col :xs="8" :sm="6" :md="4">
+                        <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+                    </el-col>
+
+
+                </div>
+
+                <el-table :data="rows"
+                          ref="table"
+                          style="width: 100%"
+                          element-loading-text="拼命加载中"
+                          border
+                          stripe
+                          :height="tableMaxHeight"
+                          v-loading="loading">
+                    <el-table-column
+                            prop="handoverno"
+                            label="交接单号"
+                            width="140"
+                            fixed="left"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="status"
+                            label="状态"
+                            width="120"
+                            :formatter="formatStatus"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            :show-overflow-tooltip="true"
+                            prop="suppliername"
+                            label="牧场名称"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column
+                            prop="numbering"
+                            label="牧场代号"
+                            width="140"
+                            align="center">
+                    </el-table-column>--%>
+
+                    <el-table-column
+                            prop="driverInfo.driver"
+                            label="司机"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+
+                    <el-table-column
+                            prop="carplate"
+                            label="挂车号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="transporterInfo.carno"
+                            label="车牌号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="transporterInfo.innerno"
+                            label="车队号"
+                            width="100"
+                            align="center">
+                    </el-table-column>
+
+                    <el-table-column
+                            :show-overflow-tooltip="true"
+                            prop="logstico"
+                            label="计划物流公司"
+                            width="160"
+                            align="center">
+                    </el-table-column>
+
+                    <el-table-column
+                            :show-overflow-tooltip="true"
+                            prop="factoryname"
+                            label="收货单位"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+
+                    <el-table-column
+                            prop="milkcount"
+                            label="计划调运数"
+                            width="160"
+                            align="center">
+                    </el-table-column>
+
+
+                    <el-table-column
+                            prop="entertime"
+                            label="到达牧场时间"
+                            width="160"
+                            align="center">
+                    </el-table-column>
+
+
+                    <%--<el-table-column
+                            prop="driverId"
+                            label="司机编号"
+                            width="140"
+                            align="center">
+                    </el-table-column>--%>
+
+
+                    <el-table-column
+                            prop="carclaim"
+                            label="装载要求"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column--%>
+                    <%--prop="createdUser"--%>
+                    <%--label="创建人"--%>
+                    <%--width="140"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <el-table-column
+                            :show-overflow-tooltip="true"
+                            prop="createdTime"
+                            label="创建时间"
+                            width="120"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column--%>
+                    <%--prop="modifiedUser"--%>
+                    <%--label="modifiedUser"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <%--<el-table-column--%>
+                    <%--prop="modifiedTime"--%>
+                    <%--label="modifiedTime"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <%--<el-table-column--%>
+                    <%--prop="delFlag"--%>
+                    <%--label="delFlag"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <el-table-column
+                            :context="_self"
+                            width="250"
+                            inline-template
+                            label="操作"
+                            fixed="right"
+                            align="center">
+                        <div>
+                            <el-button size="small" @click="editRow(row)">详情</el-button>
+                            <el-button size="small" @click="mapRow(row)">地图导航</el-button>
+                            <el-button size="small" @click="showQRCode(row)">二维码</el-button>
+                            <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+                        </div>
+                    </el-table-column>
+                </el-table>
+                <div class="pagination-wrapper" v-show="!loading">
+                    <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                                   :page-size="pageSize"
+                                   :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+                    </el-pagination>
+                </div>
+
+
+                <el-dialog
+                        :title="selected ? selected.handoverno : ''"
+                        v-model="dialogVisible"
+                        size="tiny">
+                    <div id="qrcode" ref="qrcode"></div>
+                    <span slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="download">下  载</el-button>
+        </span>
+                </el-dialog>
+
+            </template>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script src="${pageContext.request.contextPath}/lib/jquery.qrcode.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/FileSaver.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/Blob.min.js"></script>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+
+            if (getQueryString('currentPage')) {
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+
+            this.getRows();
+        },
+        computed: {
+            tableMaxHeight() {
+                var height = 600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if (document.getElementById('contentBody')) {
+                    height = document.getElementById('contentBody').offsetHeight - 192
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '1',
+                menu2: '1',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+                dialogVisible: false,
+                qrcode: null,
+                selected: null,
+            };
+        },
+        methods: {
+
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                var data = {}
+                console.log(getQueryString("status"));
+
+                if (getQueryString("status")) {
+                    this.menu2 = getQueryString('status')
+                    data.status = getQueryString("status")
+                    if (getQueryString("status") > 1 && getQueryString("status") <= 6) {
+                        this.menu2 = "2-" + getQueryString('status')
+                    }
+                    if (getQueryString("status") > 7 && getQueryString("status") <= 10) {
+                        this.menu2 = "3-" + getQueryString('status')
+                    }
+                }
+                else {
+                    this.menu2 = '0-1'
+                }
+
+                data.currentPage = this.currentPage
+                data.pageNumber = this.pageSize
+                data.searchKey = this.searchKey
+                if (!this.loading) {
+                    this.loading = true
+
+                    $.get({
+                        url: '../supplierdemandPlan/AllInfoWithList',
+                        data: data
+                    }).then(function (res) {
+                        console.log(res)
+                        if (res.success) {
+                            this.loading = false;
+                            this.totalNumber = res.data.page.totalNumber;
+                            this.rows = res.data.pp;
+
+                        }
+                    }.bind(this))
+                }
+
+
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            entertime: function (time) {
+                return new Date(time.entertime).toLocaleString()
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                var str = 'handovernosDetailNew?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str + "&currentPage=" + this.currentPage + "&pageSize=" + this.pageSize;
+            },
+            mapRow: function (row) {
+                var str = 'map?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str + "&currentPage=" + this.currentPage + "&pageSize=" + this.pageSize;
+                ;
+            },
+
+            formatStatus: function (row) {
+
+                switch (row.status) {
+                    case '-1':
+                        if (row.freshmilkTransport) {
+                            return '已调度';
+                        }
+                        return '待调度';
+                    case '1':
+                        return '运输中';
+                    case '2':
+                        return '进入牧场';
+                    case '3':
+                        return '进场称重';
+                    case '4':
+                        return '检测完成';
+                    case '5':
+                        return '装奶完成';
+                    case '6':
+                        return '出场称重';
+                    case '7':
+                        return '返程中';
+                    case '8':
+                        return '进入工厂';
+                    case '9':
+                        return '进入工厂';
+                    case '10':
+                        return '工厂取样';
+                    case '11':
+                        return '完成';
+                    case '-2':
+                        return '异常单';
+                    case '-3':
+                        return '作废';
+                    default:
+                        return '未知';
+                }
+            },
+
+            showQRCode: function (row) {
+                this.selected = row;
+                this.dialogVisible = true;
+                setTimeout(function () {
+                    this.$refs.qrcode.innerHTML = '';
+                    $('#qrcode').qrcode({
+                        width: 200,
+                        height: 200,
+                        text: row.handovernoEncrypt,
+                    });
+                }.bind(this), 10);
+            },
+            download: function () {
+                this.$refs.qrcode.querySelector('canvas').toBlob(function (blob) {
+                    saveAs(blob, this.selected.handoverno);
+                }.bind(this));
+            },
+        }
+    })
+</script>
+</html>
+

+ 291 - 0
Web/WEB-INF/jsp/newAdmin/allHandovernosIndex.jsp

@@ -0,0 +1,291 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>全部交接单</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+
+
+<div class="db-body">
+
+    <template>
+        <aside class="db-menu-wrapper">
+            <c:set var="powerStr" value="${powerStr}"/>
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#8#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos">
+                        <el-menu-item index="0-1">全部交接单</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#9#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-1">
+                        <el-menu-item index="-1">待调度</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#10#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=1">
+                        <el-menu-item index="1">运输中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#11#')}">
+                    <el-submenu index="2">
+                        <template slot="title">牧场</template>
+                        <c:if test="${fn:contains(powerStr,'#12#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=2">
+                                <el-menu-item index="2-2">进入牧场</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#13#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=3">
+                                <el-menu-item index="2-3">进场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#14#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=4">
+                                <el-menu-item index="2-4">检测完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#15#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=5">
+                                <el-menu-item index="2-5">装奶完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#16#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=6">
+                                <el-menu-item index="2-6">出场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                            <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                            <%--</a>--%>
+                    </el-submenu>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#17#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=7">
+                        <el-menu-item index="7">返程中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#18#')}">
+                    <el-submenu index="3">
+                        <template slot="title">工厂</template>
+                        <c:if test="${fn:contains(powerStr,'#19#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=8">
+                                <el-menu-item index="3-8">进入工厂</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#20#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">
+                                <el-menu-item index="3-9">工厂取样</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">--%>
+                            <%--<el-menu-item index="3-9">采样&工厂接奶</el-menu-item>--%>
+                            <%--</a>--%>
+
+                    </el-submenu>
+                </c:if>
+                <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">--%>
+                <%--<el-menu-item index="10">加工厂接奶</el-menu-item>--%>
+                <%--</a>--%>
+                <c:if test="${fn:contains(powerStr,'#21#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">
+                        <el-menu-item index="11">交接单完成</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#22#')}">
+
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-2">
+                        <el-menu-item index="-2">异常单</el-menu-item>
+                    </a>
+
+                    <%--<a href="${pageContext.request.contextPath}/admin/passPercent">--%>
+                    <%--<el-menu-item index="12">异常单</el-menu-item>--%>
+                    <%--</a>--%>
+                </c:if>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-3">
+                    <el-menu-item index="-3">作废单</el-menu-item>
+                </a>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper">
+        <section class="db-content">
+            <template>
+
+            </template>
+
+            <div class="index">
+                <img class="logo_he" src="${pageContext.request.contextPath}/images/logo2.png" alt="">
+                <div class="closed-signboard">
+                    <div class="sign">
+                        奶源追溯
+                    </div>
+                    <div class="strings"></div>
+                    <div class="pin pin1"></div>
+                    <div class="pin pin2"></div>
+                    <div class="pin pin3"></div>
+                </div>
+
+
+            </div>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getRows();
+        },
+        data: function () {
+            return {
+                menu: '1',
+                menu2: '1',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+            };
+        },
+        methods: {
+
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                var data = {}
+                console.log(getQueryString("status"));
+
+                if (getQueryString("status")) {
+                    this.menu2 = getQueryString('status')
+                    data.status = getQueryString("status")
+                    if (getQueryString("status") > 1 && getQueryString("status") <= 6) {
+                        this.menu2 = "2-" + getQueryString('status')
+                    }
+                    if (getQueryString("status") > 7 && getQueryString("status") <= 9) {
+                        this.menu2 = "3-" + getQueryString('status')
+                    }
+                }
+                else {
+                    this.menu2 = '0-1'
+                }
+
+                data.currentPage = this.currentPage
+                data.pageNumber = this.pageSize
+                data.searchKey = this.searchKey
+                if (!this.loading) {
+                    this.loading = true
+
+                    $.get({
+                        url: '../supplierdemandPlan/AllInfoWithList',
+                        data: data
+                    }).then(function (res) {
+                        console.log(res)
+                        if (res.success) {
+                            this.loading = false;
+                            this.totalNumber = res.data.page.totalNumber;
+                            this.rows = res.data.pp;
+
+                        }
+                    }.bind(this))
+                }
+
+
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            entertime: function (time) {
+                return new Date(time.entertime).toLocaleString()
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                var str = 'handovernosDetailNew?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str;
+            },
+            mapRow: function (row) {
+                var str = 'map?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str;
+            },
+
+            formatStatus: function (row) {
+
+                switch (row.status) {
+                    case '-1':
+                        return '待调度';
+                    case '1':
+                        return '运输中';
+                    case '2':
+                        return '进入牧场';
+                    case '3':
+                        return '进场称重';
+                    case '4':
+                        return '检测完成';
+                    case '5':
+                        return '装奶完成';
+                    case '6':
+                        return '出场称重';
+                    case '7':
+                        return '返程中';
+                    case '8':
+                        return '进入工厂';
+                    case '9':
+                        return '工厂取样';
+                    case '10':
+                        return '收奶中';
+                    case '11':
+                        return '完成';
+                    case '-2':
+                        return '异常单';
+                    case '-3':
+                        return '作废';
+                    default:
+                        return '未知';
+                }
+            },
+        }
+    })
+</script>
+</html>
+

+ 496 - 0
Web/WEB-INF/jsp/newAdmin/allHandovernosShow.jsp

@@ -0,0 +1,496 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>数据报表</title>
+    <style>
+        .db-content-wrapper{
+            display: flex;
+            flex-direction: column;
+            overflow: auto!important;
+        }
+        .db-content{
+            flex-grow: 1;
+            padding: 0 25px!important;
+            overflow: auto;
+        }
+        .filters{
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="dataShowLeft.jsp"/>
+
+<c:if test="${param.status==101}">
+    <el-card v-if="isCard" style="margin-bottom: 20px;">
+        <el-row>
+            <el-col :span="24" tag="div" ref="chartContainer">
+                <canvas ref="chat" style="margin: auto" :width="chartWidth" :height="chartHeight"></canvas>
+            </el-col>
+        </el-row>
+    </el-card>
+</c:if>
+<template>
+    <div class="filters">
+        <el-input placeholder="关键字" v-model="searchKey" style="width: 150px"></el-input>
+        &nbsp;
+
+        <c:if test="${param.status==101}">
+            <el-col :xs="24" :sm="6" :md="5" :lg="3" style="width:230px">
+                <el-select placeholder="请选择异常类型" v-model="oddtype" clearable filterable>
+                    <el-option v-for="item in oddtypes" :key="item.value"
+                               :label="item.label"
+                               :value="item.value"></el-option>
+                </el-select>
+            </el-col>
+        </c:if>
+        &nbsp;
+        <el-date-picker v-model="createTime" type="date" placeholder="起始时间"
+                        :picker-options="pickerOptions0"></el-date-picker>
+
+        &nbsp;
+
+        <el-date-picker v-model="endTime" type="date" placeholder="截至时间"
+                        :picker-options="pickerOptions1">
+        </el-date-picker>
+
+        &nbsp;&nbsp;&nbsp;
+
+
+        <el-button type="primary" @click="getRows">筛 选</el-button>
+
+        &nbsp;&nbsp;&nbsp;
+        <span style="font-size: 14px;color:#bfcbd9">关键字:交接单号/牧场名称/牧场代号/收货单位/计划物流公司/挂车号</span>
+
+
+    </div>
+    <%--<span>关键字:交接单号/牧场名称/牧场代号/收货单位/计划物流公司/车牌号</span>--%>
+    <el-table :data="rows"
+              ref="table"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              :height="tableMaxHeight"
+              v-loading="loading">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="handoverno"
+                label="交接单号"
+                width="140"
+                align="center">
+        </el-table-column>
+
+        <c:if test="${param.status==101}">
+            <el-table-column
+                    :show-overflow-tooltip="true"
+                    prop="freshmilkTransport.oddtype"
+                    label="异常类型"
+                    :formatter="formatTypeFlag"
+                    width="140"
+                    align="center">
+            </el-table-column>
+            <el-table-column
+                    :show-overflow-tooltip="true"
+                    prop="freshmilkTransport.oddInfo"
+                    label="异常内容"
+                    width="140"
+                    align="center">
+            </el-table-column>
+        </c:if>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="suppliername"
+                label="牧场名称"
+                width="140"
+                align="center">
+        </el-table-column>
+     <%--   <el-table-column
+                prop="numbering"
+                label="牧场代号"
+                width="140"
+                align="center">
+        </el-table-column>--%>
+        <el-table-column
+                prop="entertime"
+                label="到达牧场时间"
+                width="160"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="factoryname"
+                label="收货单位"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="milkcount"
+                label="计划调运数"
+                width="160"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="logstico"
+                label="计划物流公司"
+                width="160"
+                align="center">
+        </el-table-column>
+    <%--    <el-table-column
+                prop="driverId"
+                label="司机编号"
+                width="140"
+                align="center">
+        </el-table-column>--%>
+        <c:if test="${param.status==100}">
+            <el-table-column
+                    prop="driverInfo.driver"
+                    label="司机"
+                    width="140"
+                    align="center">
+            </el-table-column>
+        </c:if>
+
+        <el-table-column
+                prop="carplate"
+                label="挂车号"
+                width="140"
+                align="center">
+        </el-table-column>
+            <c:if test="${param.status==100}">
+
+            <el-table-column
+                    prop="transporterInfo.carno"
+                    label="车牌号"
+                    width="140"
+                    align="center">
+            </el-table-column>
+            </c:if>
+        <el-table-column
+                prop="carclaim"
+                label="装载要求"
+                width="140"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="createdUser"--%>
+        <%--label="创建人"--%>
+        <%--width="140"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="createdTime"
+                label="创建时间"
+                width="120"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="modifiedUser"--%>
+        <%--label="modifiedUser"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="modifiedTime"--%>
+        <%--label="modifiedTime"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="delFlag"--%>
+        <%--label="delFlag"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                fixed="right"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">详情</el-button>
+                <!--                             <el-button size="small" @click="mapRow(row)">地图导航</el-button>
+                 -->                            <%--<el-button size="small" @click="editRow(row)">编辑</el-button>--%>
+                <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next,total" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script src="${pageContext.request.contextPath}/js/Chart.min.js"></script>
+<script>
+    Chart.defaults.global.legend.display = false;
+    Chart.defaults.global.title.display = false;
+
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getRows();
+        },
+        computed:{
+            tableMaxHeight(){
+                var height=600;
+
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if(document.getElementById('contentBody')){
+                    height=document.getElementById('contentBody').offsetHeight-195;
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '49',
+                menu2: '1-1',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                isCard: true,
+                searchKey: '',
+                chartWidth: 200,
+                chartHeight: 200,
+                pickerOptions0: {},
+                pickerOptions1: {},
+                createTime: '',
+                endTime: '',
+                chart: null,
+                oddtype: '',
+                oddtypes: [{
+                    value: 0,
+                    label: '温度异常'
+                }, {
+                    value: 1,
+                    label: 'CIP清洗异常'
+                }, {
+                    value: 2,
+                    label: '奶量波动异常'
+                }, {
+                    value: 3,
+                    label: '质量波动异常'
+                }, {
+                    value: 4,
+                    label: '牧场检测异常'
+                }, {
+                    value: 5,
+                    label: '接奶铅封异常'
+                }],
+            };
+        },
+        mounted: function () {
+
+            var status = getQueryString("status");
+
+            if (status == 101) {
+                var vm = this
+                $.get({
+                    url: '../supplierdemandPlan/passNum',
+                    data: {}
+                }).then(function (res) {
+                    if (res.success) {
+                        vm.row_info = res.data;
+
+                        var failNum = vm.row_info.failNum
+                        var totalNum = vm.row_info.totalNum
+                        if (totalNum > 0) {
+                            var elseNum = totalNum - failNum
+                            var datasets = [failNum, elseNum]
+                            console.log(datasets)
+                            vm.chart = new Chart(this.$refs.chat.getContext('2d'), {
+                                type: 'pie',
+                                data: {
+
+                                    labels: [
+                                        "异常单",
+                                        "正常单"
+                                    ],
+                                    datasets: [
+                                        {
+                                            data: datasets,
+                                            backgroundColor: [
+                                                "#FF6384",
+                                                "#36A2EB"
+                                            ],
+                                            hoverBackgroundColor: [
+                                                "#FF6384",
+                                                "#36A2EB"
+                                            ]
+                                        }]
+                                },
+                                options: {
+                                    responsive: false,
+                                    title: {
+                                        display: true,
+                                        text: '异常单数据统计',
+                                        fontColor: "#000",
+                                        fontSize: 16
+                                    },
+                                    legend: {
+                                        display: true,
+                                        position: 'bottom',
+//                                labels:['异常单'+failNum,'正常单'+elseNum]
+//                                labels:['异常单','正常单']
+                                    }
+                                }
+                            });
+                        }
+                        else {
+                            vm.isCard = false
+                        }
+                    }
+                }.bind(this));
+            }
+
+
+        },
+        methods: {
+
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            formatTypeFlag: function (row) {
+                if (row.freshmilkTransport.oddtype) {
+                    switch (row.freshmilkTransport.oddtype) {
+                        case 0:
+                            return '温度异常';
+                        case 1:
+                            return 'CIP清洗异常';
+                        case 2:
+                            return '奶量波动异常';
+                        case 3:
+                            return '质量波动异常';
+                        case 4:
+                            return '牧场检测异常';
+                        case 5:
+                            return '接奶铅封异常';
+                        default:
+                            return '未知';
+                    }
+                }
+
+            },
+            getRows: function () {
+
+                var status = getQueryString("status");
+
+                var data = {
+
+                    searchKey: this.searchKey,
+                };
+
+                if (this.createTime) {
+                    data.createTime = Date.parse(new Date(this.createTime));
+                }
+                if (this.endTime) {
+                    data.endTime = Date.parse(new Date(this.endTime));
+                }
+
+                data.oddtype = this.oddtype;
+
+                var url = '../supplierdemandPlan/AllInfoWithList';
+
+
+                if (status) {
+                    if (status == '100') {
+                        this.menu = '49';
+                        this.menu2 = '1-1';
+                    }
+                    if (status == '101') {
+                        this.menu = '49';
+                        this.menu2 = '2-3';
+                        data.status = '-2';
+                        url = '../supplierdemandPlan/AllInfoWithTransport'
+                    }
+                }
+
+                data.currentPage = this.currentPage
+                data.pageNumber = this.pageSize
+                if (!this.loading) {
+                    this.loading = true
+
+                    $.get({
+                        url: url,
+                        data: data
+                    }).then(function (res) {
+                        this.loading = false;
+                        console.log(res)
+                        if (res.success) {
+                            this.totalNumber = res.data.page.totalNumber;
+                            this.rows = res.data.pp;
+                        }
+                    }.bind(this))
+                }
+
+
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            entertime: function (time) {
+                return new Date(time.entertime).toLocaleString()
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                var str = 'handovernosDetailNew?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                str += '&type=search'
+                window.location = str +"&currentPage="+ this.currentPage + "&pageSize=" + this.pageSize;;
+            },
+            mapRow: function (row) {
+                var str = 'map?handOverNo=' + row.handoverno
+                if (getQueryString('status')) {
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str +"&currentPage="+ this.currentPage + "&pageSize=" + this.pageSize;;
+            },
+        }
+    })
+</script>
+</html>
+

+ 144 - 0
Web/WEB-INF/jsp/newAdmin/allHandovernosShowIndex.jsp

@@ -0,0 +1,144 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>数据报表</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="dataShowLeft.jsp"/>
+            <template>
+                <div class="index">
+                    <img class="logo_he" src="${pageContext.request.contextPath}/images/logo2.png" alt="">
+                    <div class="closed-signboard">
+                        <div class="sign">
+                            奶源追溯
+                        </div>
+                        <div class="strings"></div>
+                        <div class="pin pin1"></div>
+                        <div class="pin pin2"></div>
+                        <div class="pin pin3"></div>
+                    </div>
+
+
+                </div>
+            </template>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+           // this.getRows();
+        },
+        data: function () {
+            return {
+                menu: '49',
+                menu2: '',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+            };
+        },
+        methods: {
+
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                var data = {
+
+                    searchKey:this.searchKey,
+                };
+                var url = '../supplierdemandPlan/AllInfoWithList';
+                var status = getQueryString("status");
+                
+                if (status) {
+                    if(status == '100'){
+                    	this.menu = '49';
+                        this.menu2 = '1-1';
+                    }
+                    if(status == '101'){
+                    	this.menu = '49';
+                        this.menu2 = '2-3';
+                        data.status = '-2';
+                        url = '../supplierdemandPlan/AllInfoWithTransport'
+                    }
+                }
+
+                data.currentPage = this.currentPage
+                data.pageNumber = this.pageSize
+                if (!this.loading) {
+                    this.loading = true
+
+                    $.get({
+                        url: url,
+                        data: data
+                    }).then(function (res) {
+                        this.loading = false;
+                        console.log(res)
+                        if (res.success) {
+                            this.totalNumber = res.data.page.totalNumber;
+                            this.rows = res.data.pp;
+                        }
+                    }.bind(this))
+                }
+
+
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            entertime: function (time) {
+                return new Date(time.entertime).toLocaleString()
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                var str='handovernosDetailNew?handOverNo=' + row.handoverno
+                if(getQueryString('status')){
+                    str+='&status='+getQueryString('status')
+                }
+                window.location =str;
+            },
+            mapRow: function (row) {
+                var str='map?handOverNo=' + row.handoverno
+                if(getQueryString('status')){
+                    str+='&status='+getQueryString('status')
+                }
+                window.location =str;
+            },
+        }
+    })
+</script>
+</html>
+

+ 258 - 0
Web/WEB-INF/jsp/newAdmin/article.jsp

@@ -0,0 +1,258 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-row class="filter-bar" :gutter="20">
+        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-select @change="getData" v-model="filters.type" placeholder="类型" clearable>
+                <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.name"
+                        :value="item.value">
+                </el-option>
+            </el-select>
+        </el-col>
+        <el-col :sm="6" :md="4" :lg="2">
+            <el-button type="primary" @click="add">添加</el-button>
+        </el-col>
+    </el-row>
+    <el-table :data="rows"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading"
+              ref="table"
+              tableId="table"
+              id="table">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="title"
+                label="标题">
+        </el-table-column>
+        <el-table-column
+                label="类型"
+                :formatter="getType">
+        </el-table-column>
+        <el-table-column
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="edit(row)">编辑</el-button>
+                <el-button size="small" type="danger" @click="del(row)">删除</el-button>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="total, sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+    <el-dialog
+            title="编辑"
+            v-model="dialogVisible"
+            size="tiny">
+        <div>
+            <el-form label-position="left" label-width="80px">
+                <el-form-item label="标题">
+                    <el-input v-model="article.title"></el-input>
+                </el-form-item>
+                <el-form-item label="图片">
+                    <el-upload
+                            action="../assets/uploadFile"
+                            :on-success="uploadSuccess"
+                            :show-file-list="false">
+                        <img :src="tmpImg" style="width:100%" v-if="tmpImg"/>
+                        <el-button type="primary" size="small" v-else>点击上传</el-button>&nbsp;
+                    </el-upload>
+                </el-form-item>
+                <el-form-item label="文章链接">
+                    <el-input v-model="article.url"></el-input>
+                </el-form-item>
+                <el-form-item label="类型">
+                    <el-select v-model="article.type" placeholder="请选择">
+                        <el-option
+                                v-for="item in options"
+                                :key="item.value"
+                                :label="item.name"
+                                :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+        </div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="dialogVisible=false">取消</el-button>
+            <el-button type="primary" @click="save">保存</el-button>
+        </span>
+    </el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: function () {
+            return {
+                loading: true,
+                menu: '2',
+                rows: [],
+                dialogVisible: false,
+                article: {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                },
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                update: false,
+                options: [
+                    {name: '首页', value: 9},
+                    {name: '理财产品', value: 1},
+                    {name: '热销基金', value: 2},
+                    {name: '贵金属', value: 3},
+                    {name: '保险产品', value: 4},
+                    {name: '龙支付', value: 5},
+                    {name: '私人银行', value: 6},
+                    {name: '外汇业务', value: 7},
+                    {name: '客户专享', value: 8}
+                ],
+                filters: {
+                    type: ''
+                },
+                tmpImg: ''
+            };
+        },
+        methods: {
+            getData: function () {
+                this.loading = true;
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize
+                };
+                if (this.filters.type) {
+                    data.type = this.filters.type
+                }
+                $.get({
+                    url: '../article/byPage',
+                    data: data
+                }).then(function (res) {
+                    this.loading = false;
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.data
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            edit: function (row) {
+                this.update = true;
+                this.article = JSON.parse(JSON.stringify(row));
+                this.tmpImg = this.article.realImg;
+                this.dialogVisible = true;
+            },
+            del: function (row) {
+                this.$confirm('确认删除?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    $.post({
+                        url: '../article/del',
+                        data: {
+                            id: row.id
+                        }
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('删除成功');
+                            this.getData();
+                        } else {
+                            this.$message.warning('删除失败');
+                        }
+                    }.bind(this));
+                }.bind(this)).catch(function () {
+                })
+            },
+            add: function () {
+                this.update = false;
+                this.tmpImg = '';
+                this.article = {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                };
+                this.dialogVisible = true;
+            },
+            save: function () {
+                if (!this.article.title) {
+                    this.$message('请输入标题');
+                } else if (!this.article.url) {
+                    this.$message('请输入文章链接');
+                } else if (!this.article.type) {
+                    this.$message('请选择类型');
+                } else {
+                    $.post({
+                        url: this.update ? '../article/update' : '../article/save',
+                        data: this.article
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                            this.dialogVisible = false;
+                            this.getData();
+                        }
+                    }.bind(this))
+                }
+            },
+            getType: function (row) {
+                var index = this.options.findIndex(function (i) {
+                    return i.value === row.type
+                });
+                if (index > -1) {
+                    return this.options[index].name;
+                } else {
+                    return '';
+                }
+            },
+            uploadSuccess: function (response, file, fileList) {
+                this.tmpImg = URL.createObjectURL(file.raw);
+                this.article.img = response.data[0];
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 261 - 0
Web/WEB-INF/jsp/newAdmin/banner.jsp

@@ -0,0 +1,261 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-row class="filter-bar" :gutter="20">
+        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-select @change="getData" v-model="filters.type" placeholder="类型" clearable>
+                <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.name"
+                        :value="item.value">
+                </el-option>
+            </el-select>
+        </el-col>
+        <el-col :sm="6" :md="4" :lg="2">
+            <el-button type="primary" @click="add">添加</el-button>
+        </el-col>
+    </el-row>
+    <el-table :data="rows"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading"
+              ref="table"
+              tableId="table"
+              id="table">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="title"
+                label="标题">
+        </el-table-column>
+        <el-table-column
+                label="类型"
+                :formatter="getType">
+        </el-table-column>
+        <el-table-column
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="edit(row)">编辑</el-button>
+                <el-button size="small" type="danger" @click="del(row)">删除</el-button>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="total, sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+    <el-dialog
+            title="编辑"
+            v-model="dialogVisible"
+            size="tiny">
+        <div>
+            <el-form label-position="left" label-width="80px">
+                <el-form-item label="标题">
+                    <el-input v-model="article.title"></el-input>
+                </el-form-item>
+                <el-form-item label="图片">
+                    <el-upload
+                            action="../assets/uploadFile"
+                            :on-success="uploadSuccess"
+                            :show-file-list="false">
+                        <img :src="tmpImg" style="width:100%" v-if="tmpImg"/>
+                        <el-button type="primary" size="small" v-else>点击上传</el-button>&nbsp;
+                    </el-upload>
+                </el-form-item>
+                <el-form-item label="文章链接">
+                    <el-input v-model="article.url"></el-input>
+                </el-form-item>
+                <el-form-item label="类型">
+                    <el-select v-model="article.type" placeholder="请选择">
+                        <el-option
+                                v-for="item in options"
+                                :key="item.value"
+                                :label="item.name"
+                                :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+        </div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="dialogVisible=false">取消</el-button>
+            <el-button type="primary" @click="save">保存</el-button>
+        </span>
+    </el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: function () {
+            return {
+                loading: true,
+                menu: '3',
+                rows: [],
+                dialogVisible: false,
+                article: {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                },
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                update: false,
+                options: [
+                    {name: '首页', value: 9},
+                    {name: '理财产品', value: 1},
+                    {name: '热销基金', value: 2},
+                    {name: '贵金属', value: 3},
+                    {name: '保险产品', value: 4},
+                    {name: '龙支付', value: 5},
+                    {name: '私人银行', value: 6},
+                    {name: '外汇业务', value: 7},
+                    {name: '客户专享', value: 8}
+                ],
+                filters: {
+                    type: ''
+                },
+                tmpImg: ''
+            };
+        },
+        methods: {
+            getData: function () {
+                this.loading = true;
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize
+                };
+                if (this.filters.type) {
+                    data.type = this.filters.type
+                }
+                $.get({
+                    url: '../banner/byPage',
+                    data: data
+                }).then(function (res) {
+                    this.loading = false;
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.data
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            edit: function (row) {
+                this.update = true;
+                this.article = JSON.parse(JSON.stringify(row));
+                this.tmpImg = this.article.realImg;
+                this.dialogVisible = true;
+            },
+            del: function (row) {
+                this.$confirm('确认删除?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    $.post({
+                        url: '../banner/del',
+                        data: {
+                            id: row.id
+                        }
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('删除成功');
+                            this.getData();
+                        } else {
+                            this.$message.warning('删除失败');
+                        }
+                    }.bind(this));
+                }.bind(this)).catch(function () {
+                })
+            },
+            add: function () {
+                this.update = false;
+                this.tmpImg = '';
+                this.article = {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                };
+                this.dialogVisible = true;
+            },
+            save: function () {
+                if (!this.article.title) {
+                    this.$message('请输入标题');
+                } else if (!this.article.img) {
+                    this.$message('输入图片链接');
+                } else if (!this.article.url) {
+                    this.$message('请输入文章链接');
+                } else if (!this.article.type) {
+                    this.$message('请选择类型');
+                } else {
+                    $.post({
+                        url: this.update ? '../banner/update' : '../banner/save',
+                        data: this.article
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                            this.dialogVisible = false;
+                            this.getData();
+                        }
+                    }.bind(this))
+                }
+            },
+            getType: function (row) {
+                var index = this.options.findIndex(function (i) {
+                    return i.value === row.type
+                });
+                if (index > -1) {
+                    return this.options[index].name;
+                } else {
+                    return '';
+                }
+            },
+            uploadSuccess: function (response, file, fileList) {
+                this.tmpImg = URL.createObjectURL(file.raw);
+                this.article.img = response.data[0];
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 254 - 0
Web/WEB-INF/jsp/newAdmin/bannerShanrong.jsp

@@ -0,0 +1,254 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+
+    <jsp:include page="head.jsp"/>
+    <title>银行管理平台</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-row class="filter-bar" :gutter="20">
+        <!-- <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-select @change="getData" v-model="filters.type" placeholder="类型" clearable>
+                <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.name"
+                        :value="item.value">
+                </el-option>
+            </el-select>
+        </el-col> -->
+        <el-col :sm="6" :md="4" :lg="2">
+            <el-button type="primary" @click="add">添加</el-button>
+        </el-col>
+    </el-row>
+    <el-table :data="rows"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading"
+              ref="table"
+              tableId="table"
+              id="table">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="title"
+                label="标题">
+        </el-table-column>
+        <el-table-column
+                label="类型"
+                :formatter="getType">
+        </el-table-column>
+        <el-table-column
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="edit(row)">编辑</el-button>
+                <el-button size="small" type="danger" @click="del(row)">删除</el-button>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="total, sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+    <el-dialog
+            title="编辑"
+            v-model="dialogVisible"
+            size="tiny">
+        <div>
+            <el-form label-position="left" label-width="80px">
+                <el-form-item label="标题">
+                    <el-input v-model="article.title"></el-input>
+                </el-form-item>
+                <el-form-item label="图片">
+                    <el-upload
+                            action="../assets/uploadFile"
+                            :on-success="uploadSuccess"
+                            :show-file-list="false">
+                        <img :src="tmpImg" style="width:100%" v-if="tmpImg"/>
+                        <el-button type="primary" size="small" v-else>点击上传</el-button>&nbsp;
+                    </el-upload>
+                </el-form-item>
+                <el-form-item label="链接">
+                    <el-input v-model="article.url"></el-input>
+                </el-form-item>
+                <el-form-item label="类型">
+                    <el-select v-model="article.type" placeholder="请选择">
+                        <el-option
+                                v-for="item in options"
+                                :key="item.value"
+                                :label="item.name"
+                                :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+        </div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="dialogVisible=false">取消</el-button>
+            <el-button type="primary" @click="save">保存</el-button>
+        </span>
+    </el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: function () {
+            return {
+                loading: true,
+                menu: '8-6',
+                rows: [],
+                dialogVisible: false,
+                article: {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                },
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                update: false,
+                options: [
+                    {name: '首页banner', value: 1},
+                    {name: '地域特色', value: 2},
+                    {name: '电子券使用流程', value: 3},
+                ],
+                filters: {
+                    type: ''
+                },
+                tmpImg: ''
+            };
+        },
+        methods: {
+            getData: function () {
+                this.loading = true;
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize
+                };
+                if (this.filters.type) {
+                    data.type = this.filters.type
+                }
+                $.get({
+                    url: '../bannerShanrong/all',
+                    data: data
+                }).then(function (res) {
+                    this.loading = false;
+                    if (res.success) {
+                        this.rows = res.data;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            edit: function (row) {
+                this.update = true;
+                this.article = JSON.parse(JSON.stringify(row));
+                this.tmpImg = this.article.realImg;
+                this.dialogVisible = true;
+            },
+            del: function (row) {
+                this.$confirm('确认删除?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    $.post({
+                        url: '../bannerShanrong/del',
+                        data: {
+                            id: row.id
+                        }
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('删除成功');
+                            this.getData();
+                        } else {
+                            this.$message.warning('删除失败');
+                        }
+                    }.bind(this));
+                }.bind(this)).catch(function () {
+                })
+            },
+            add: function () {
+                this.update = false;
+                this.tmpImg = '';
+                this.article = {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                };
+                this.dialogVisible = true;
+            },
+            save: function () {
+                if (!this.article.title) {
+                    this.$message('请输入标题');
+                } else if (!this.article.img) {
+                    this.$message('输入图片链接');
+                } else if (!this.article.url) {
+                    this.$message('请输入链接');
+                } else if (!this.article.type) {
+                    this.$message('请选择类型');
+                } else {
+                    $.post({
+                        url: this.update ? '../bannerShanrong/update' : '../bannerShanrong/save',
+                        data: this.article
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                            this.dialogVisible = false;
+                            this.getData();
+                        }
+                    }.bind(this))
+                }
+            },
+            getType: function (row) {
+                var index = this.options.findIndex(function (i) {
+                    return i.value === row.type
+                });
+                if (index > -1) {
+                    return this.options[index].name;
+                } else {
+                    return '';
+                }
+            },
+            uploadSuccess: function (response, file, fileList) {
+                this.tmpImg = URL.createObjectURL(file.raw);
+                this.article.img = response.data[0];
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 117 - 0
Web/WEB-INF/jsp/newAdmin/bulk.jsp

@@ -0,0 +1,117 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handOverSheetNo">
+			<el-input v-model="row_info.handOverSheetNo"></el-input>
+		</el-form-item>
+		<el-form-item label="bulkNo">
+			<el-input v-model="row_info.bulkNo"></el-input>
+		</el-form-item>
+		<el-form-item label="bulkIncomingTemp">
+			<el-input v-model="row_info.bulkIncomingTemp"></el-input>
+		</el-form-item>
+		<el-form-item label="assertion">
+			<el-input v-model="row_info.assertion"></el-input>
+		</el-form-item>
+		<el-form-item label="checkReport">
+			<el-input v-model="row_info.checkReport"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createTime">
+			<el-input v-model="row_info.createTime"></el-input>
+		</el-form-item>
+		<el-form-item label="updateTime">
+			<el-input v-model="row_info.updateTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../bulk/getBulk',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../bulk/update' : '../bulk/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 186 - 0
Web/WEB-INF/jsp/newAdmin/bulks.jsp

@@ -0,0 +1,186 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handOverSheetNo"
+				label="handOverSheetNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="bulkNo"
+				label="bulkNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="bulkIncomingTemp"
+				label="bulkIncomingTemp"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="assertion"
+				label="assertion"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkReport"
+				label="checkReport"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createTime"
+				label="createTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="updateTime"
+				label="updateTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../bulk/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'bulk?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../bulk/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'bulk';
+			}
+		}
+	})
+</script>
+</html>
+

+ 138 - 0
Web/WEB-INF/jsp/newAdmin/carCip.jsp

@@ -0,0 +1,138 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="车牌号">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item label="挂车号">
+			<el-input v-model="row_info.carno"></el-input>
+		</el-form-item>
+		<el-form-item label="时间">
+			<el-input v-model="row_info.date"></el-input>
+		</el-form-item>
+		<el-form-item label="开始清洗时间">
+			<el-input v-model="row_info.cipStartime"></el-input>
+		</el-form-item>
+		<el-form-item label="清洗方式">
+			<el-input v-model="row_info.cleanType"></el-input>
+		</el-form-item>
+		<el-form-item label="操作人">
+			<el-input v-model="row_info.ciper"></el-input>
+		</el-form-item>
+		<el-form-item label="检查人">
+			<el-input v-model="row_info.checker"></el-input>
+		</el-form-item>
+		<el-form-item label="结束清洗时间">
+			<el-input v-model="row_info.cipEndtime"></el-input>
+		</el-form-item>
+		<%--<el-form-item label="cipSealnum">--%>
+			<%--<el-input v-model="row_info.cipSealnum"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="cipSealnumQr">--%>
+			<%--<el-input v-model="row_info.cipSealnumQr"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="createdUser">--%>
+			<%--<el-input v-model="row_info.createdUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="createdTime">--%>
+			<%--<el-input v-model="row_info.createdTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedUser">--%>
+			<%--<el-input v-model="row_info.modifiedUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedTime">--%>
+			<%--<el-input v-model="row_info.modifiedTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="delFlag">--%>
+			<%--<el-input v-model="row_info.delFlag"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../carCip/getCarCip',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../carCip/update' : '../carCip/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 126 - 0
Web/WEB-INF/jsp/newAdmin/carCipSeal.jsp

@@ -0,0 +1,126 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="carplate">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item label="carno">
+			<el-input v-model="row_info.carno"></el-input>
+		</el-form-item>
+		<el-form-item label="date">
+			<el-input v-model="row_info.date"></el-input>
+		</el-form-item>
+		<el-form-item label="milkcarCylinderno">
+			<el-input v-model="row_info.milkcarCylinderno"></el-input>
+		</el-form-item>
+		<el-form-item label="cipSealnum">
+			<el-input v-model="row_info.cipSealnum"></el-input>
+		</el-form-item>
+		<el-form-item label="cipSealnumQr">
+			<el-input v-model="row_info.cipSealnumQr"></el-input>
+		</el-form-item>
+		<el-form-item label="milkcarupCylinderno">
+			<el-input v-model="row_info.milkcarupCylinderno"></el-input>
+		</el-form-item>
+		<el-form-item label="cansealupCipNum">
+			<el-input v-model="row_info.cansealupCipNum"></el-input>
+		</el-form-item>
+		<el-form-item label="cansealupCipNumQr">
+			<el-input v-model="row_info.cansealupCipNumQr"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../carCipSeal/getCarCipSeal',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../carCipSeal/update' : '../carCipSeal/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 201 - 0
Web/WEB-INF/jsp/newAdmin/carCipSeals.jsp

@@ -0,0 +1,201 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carno"
+				label="carno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="date"
+				label="date"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkcarCylinderno"
+				label="milkcarCylinderno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipSealnum"
+				label="cipSealnum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipSealnumQr"
+				label="cipSealnumQr"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkcarupCylinderno"
+				label="milkcarupCylinderno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cansealupCipNum"
+				label="cansealupCipNum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cansealupCipNumQr"
+				label="cansealupCipNumQr"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../carCipSeal/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'carCipSeal?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../carCipSeal/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'carCipSeal';
+			}
+		}
+	})
+</script>
+</html>
+

+ 221 - 0
Web/WEB-INF/jsp/newAdmin/carCips.jsp

@@ -0,0 +1,221 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carno"
+				label="carno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="date"
+				label="date"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipStartime"
+				label="cipStartime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cleanType"
+				label="cleanType"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="ciper"
+				label="ciper"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checker"
+				label="checker"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipEndtime"
+				label="cipEndtime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipSealnum"
+				label="cipSealnum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipSealnumQr"
+				label="cipSealnumQr"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../carCip/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+				    console.log(res)
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'carCip?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../carCip/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'carCip';
+			}
+		}
+	})
+</script>
+</html>
+

+ 114 - 0
Web/WEB-INF/jsp/newAdmin/carGps.jsp

@@ -0,0 +1,114 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="carplate">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item label="positiontime">
+			<el-input v-model="row_info.positiontime"></el-input>
+		</el-form-item>
+		<el-form-item label="temp">
+			<el-input v-model="row_info.temp"></el-input>
+		</el-form-item>
+		<el-form-item label="longitude">
+			<el-input v-model="row_info.longitude"></el-input>
+		</el-form-item>
+		<el-form-item label="latitude">
+			<el-input v-model="row_info.latitude"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../carGps/getCarGps',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../carGps/update' : '../carGps/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 181 - 0
Web/WEB-INF/jsp/newAdmin/carGpss.jsp

@@ -0,0 +1,181 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="positiontime"
+				label="positiontime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="temp"
+				label="temp"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="longitude"
+				label="longitude"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="latitude"
+				label="latitude"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../carGps/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'carGps?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../carGps/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'carGps';
+			}
+		}
+	})
+</script>
+</html>
+

+ 165 - 0
Web/WEB-INF/jsp/newAdmin/cartypeCip.jsp

@@ -0,0 +1,165 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶车Cip清洗规则</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<%--<el-form-item label="物流公司">--%>
+			<%--&lt;%&ndash;<el-input v-model="row_info"></el-input>&ndash;%&gt;--%>
+		<%--</el-form-item>--%>
+		<el-form-item label="物流公司">
+			<el-select v-model="row_info.cono" placeholder="请选择">
+				<el-option
+						v-for="item in logisticsCo"
+						:key="item.numbering"
+						:label="item.coName"
+						:value="item.numbering">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+			<el-form-item label="清洗时间">
+				<el-select v-model="row_info.cleanTime" placeholder="请选择">
+					<el-option
+							v-for="(item,index) in date"
+							:key="index"
+							:label="'星期'+item"
+							:value="index">
+
+					</el-option>
+				</el-select>
+
+			</el-form-item>
+		<%--<el-form-item label="清洗时间">--%>
+			<%--<el-input v-model="row_info.cleanTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="创建人">--%>
+			<%--<el-input v-model="row_info.createdUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="创建时间">--%>
+			<%--<el-input v-model="row_info.createdTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedUser">--%>
+			<%--<el-input v-model="row_info.modifiedUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedTime">--%>
+			<%--<el-input v-model="row_info.modifiedTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="delFlag">--%>
+			<%--<el-input v-model="row_info.delFlag"></el-input>--%>
+
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button  @click="back">返回</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+            $.get({
+                url: '../logisticsCo/all'
+            }).then(function (res) {
+                this.logisticsCo = res.data;
+                console.log(res)
+
+            }.bind(this));
+			if (id) {
+				$.get({
+					url: '../cartypeCip/getCartypeCip',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+                    console.log(res)
+					if (res.success) {
+						this.edit = true;
+
+
+						this.row_info = res.data;
+
+                        this.row_info.cleanTime = Number(res.data.cleanTime);
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+                menu: '7',
+                menu2:'9-1',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {
+                    cono:'',
+                    cleanTime:''
+				},
+                logisticsCo:[],
+				date:['日','一','二','三','四','五','六']
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+
+                delete data.createdTime;
+                delete data.modifiedTime;
+
+				$.post({
+					url: this.edit ? '../cartypeCip/update' : '../cartypeCip/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+						window.location.href="cartypeCips.html"+ getPageString("?");
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+            back:function () {
+				window.location.href ='../admin/cartypeCips' + getPageString("?");
+            }
+		}
+	})
+</script>
+</html>
+

+ 222 - 0
Web/WEB-INF/jsp/newAdmin/cartypeCips.jsp

@@ -0,0 +1,222 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶车Cip清洗规则</title>
+	<style>
+		.db-content-wrapper{
+			display: flex;
+			flex-direction: column;
+			overflow: auto!important;
+		}
+		.db-content{
+			flex-grow: 1;
+			padding: 0 25px!important;
+			overflow: hidden;
+		}
+		.filters{
+			margin-top: 25px;
+		}
+	</style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			  :height="tableMaxHeight"
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="logisticsCo.coName"
+				label="物流公司"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cleanTime"
+				label="全套清洗时间"
+				:formatter="date"
+				align="center">
+		</el-table-column>
+
+		<%--<el-table-column--%>
+				<%--prop="createdUser"--%>
+				<%--label="创建人"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<%--<el-table-column--%>
+				<%--prop="createdTime"--%>
+				<%--label="创建时间"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<%--<el-table-column--%>
+				<%--prop="modifiedUser"--%>
+				<%--label="modifiedUser"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<%--<el-table-column--%>
+				<%--prop="modifiedTime"--%>
+				<%--label="modifiedTime"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<%--<el-table-column--%>
+				<%--prop="delFlag"--%>
+				<%--label="delFlag"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+
+            if(getQueryString('currentPage')){
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+
+			this.getRows();
+		},
+        computed:{
+            tableMaxHeight(){
+                var height=600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if(document.getElementById('contentBody')){
+                    height=document.getElementById('contentBody').offsetHeight-192
+                }
+                return height
+            }
+        },
+		data: function () {
+			return {
+				menu: '7',
+				menu2:'9-1',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: [],
+                dates:['日','一','二','三','四','五','六']
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../cartypeCip/loginPage',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+				    console.log(res)
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'cartypeCip?id=' + row.id+"&currentPage="+ this.currentPage + "&pageSize=" + this.pageSize;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../cartypeCip/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'cartypeCip';
+			},
+            date:function (row) {
+                return '星期'+this.dates[row.cleanTime]
+            }
+		}
+	})
+</script>
+</html>
+

+ 175 - 0
Web/WEB-INF/jsp/newAdmin/changePassword.jsp

@@ -0,0 +1,175 @@
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="旧密码">
+			<el-input v-model="row_info.old" type="password"></el-input>
+		</el-form-item>
+		<el-form-item label="新密码">
+			<el-input v-model="newPassword" type="password" ></el-input>
+			 密码强度: <el-tag :type="strength == '弱' ?  'danger' :  'gray' " >弱</el-tag>
+			<el-tag :type="strength == '中' ?  'warning' : 'gray'">中</el-tag>
+			<el-tag :type="strength == '强' ?'success' :  'gray' " >强</el-tag>
+		</el-form-item>
+		<el-form-item label="确认新密码">
+			<el-input v-model="row_info.confirm" type="password"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			
+		},
+		data: function () {
+			return {
+				menu: '7',
+				menu2: '11',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				data1 :[],
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {
+					old : '',
+					newPassword : '',
+					confirm: ''
+				},
+                newPassword:'',
+                strengthType:'',
+                strength:''
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				if(this.row_info.old ==''||this.newPassword ==''||this.row_info.confirm =='')
+				{
+						this.$message.error('不能为空');
+				}else if(this.strengthType!='warning'&&this.strengthType!='success'){
+                    this.$message.error('密码必须包含数字与字母混合,无法修改');
+				}
+				else if(this.newPassword!=this.row_info.confirm)
+				{
+					this.$message.error('新密码不一致');
+				}else if( this.strengthType=="danger")
+				{
+				    this.$message.error("密码强度太弱,安全程度不高!");
+				}
+				else
+				{
+				    this.row_info.newPassword=this.newPassword;
+					var data = JSON.parse(JSON.stringify(this.row_info));
+					$.post({
+						url: '../userInfo/changePassword',
+						data: data
+					}).then(function (res) {
+						if (res.success) {
+							this.$message.success(this.edit ? '保存成功' : '创建成功');
+						} else {
+							this.$message.error('密码错误');
+						}
+					}.bind(this))
+				}
+			},
+			pwStrength1:function () {
+                //长度
+                if(this.newPssword.length< 6 || this.newPassword.length > 20) {
+                    this.$message.error('新密码长度在6-20位之间');
+                }
+            },
+            pwStrength:function () {
+                   //正则表达式
+                    var is_all_num = /^\d+$/.test(this.newPassword);
+                    var have_num = /\d/.test(this.newPassword);
+                    var is_all_abc = /^[a-zA-Z]+$/.test(this.newPassword);
+                    var have_abc = /[a-zA-Z]/.test(this.newPassword);
+                    var have_strong = /[^a-zA-Z0-9]/.test(this.newPassword);
+				    var is_very_strong = this.newPassword.split(/[^a-zA-Z_0-9]/).length > 2;
+
+                //空白
+				var tmppwd = this.newPassword.replace(/\s+/g,"");
+				if(tmppwd != this.newPassword) {
+                    this.$message.error('新密码不能含有空白字符');
+				}
+
+                /**
+				 * 弱:
+				 *  1)全部为数字或字母
+				 *  2)数字与字母混合且少于8位
+				 */
+                   if( (is_all_num || is_all_abc) || (have_num && have_abc &&  this.newPassword.length < 8) ){
+						this.strength="弱";
+						this.strengthType="danger";
+				   }
+				   /**
+                     * 中:
+                     *  1)数字与字母混合且大于等于8位
+                     *  2)数字与字母与其它可打印字符且小于8位
+                     *  3)两两组合
+                  */
+                   if( (have_num && have_abc && this.newPassword.length >= 6) || (have_num && have_abc && have_strong &&  this.newPassword.length >=6)
+                                || ( (have_num && have_strong && this.newPassword.length >= 6) || (have_abc && have_strong && this.newPassword.length >= 6) ) ){
+                       this.strength="中";
+                       this.strengthType="warning";
+				   }
+
+                 /**
+                      * 强:
+                      *  1)数字与字母与其它可打印字符且大于等于8位
+                      *  2)数字与字母与其它可打印字符(大于2位)且小于8位
+                      *  3)两两组合大于等于8位
+                      */
+                    if( (have_num && have_abc && have_strong &&  this.newPassword.length >= 8)
+                                || (have_num && have_abc && is_very_strong &&  this.newPassword.length >= 8)
+                            || ( ( (have_num && have_strong) || (have_abc && have_strong) ) &&  this.newPassword.length >= 8 ) ){
+                        this.strength="强";
+                        this.strengthType="success";
+					}
+            }
+		},
+		watch:{
+            newPassword :function () {
+                this.pwStrength();
+            }
+		}
+	})
+</script>
+</html>
+

+ 109 - 0
Web/WEB-INF/jsp/newAdmin/cipResult.jsp

@@ -0,0 +1,109 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="工厂">
+			<el-input v-model="row_info.factoryNo"></el-input>
+		</el-form-item>
+		<el-form-item label="车牌">
+			<el-input v-model="row_info.tankerNo"></el-input>
+		</el-form-item>
+		<el-form-item label="操作人">
+			<el-input v-model="row_info.operator"></el-input>
+		</el-form-item>
+		<el-form-item label="检查人">
+			<el-input v-model="row_info.checker"></el-input>
+		</el-form-item>
+		<el-form-item label="结果">
+			<el-input v-model="row_info.cipResult"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../cipResult/getCipResult',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../cipResult/update' : '../cipResult/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+						window.location="cipResults.html";
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 129 - 0
Web/WEB-INF/jsp/newAdmin/cipResultDetail.jsp

@@ -0,0 +1,129 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="factoryNo">
+			<el-input v-model="row_info.factoryNo"></el-input>
+		</el-form-item>
+		<el-form-item label="tankerNo">
+			<el-input v-model="row_info.tankerNo"></el-input>
+		</el-form-item>
+		<el-form-item label="operator">
+			<el-input v-model="row_info.operator"></el-input>
+		</el-form-item>
+		<el-form-item label="checker">
+			<el-input v-model="row_info.checker"></el-input>
+		</el-form-item>
+		<el-form-item label="cipResult">
+			<el-input v-model="row_info.cipResult"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createTime">
+			<el-input v-model="row_info.createTime"></el-input>
+		</el-form-item>
+		<el-form-item label="updateTime">
+			<el-input v-model="row_info.updateTime"></el-input>
+		</el-form-item>
+		<el-form-item label="cipSealnum">
+			<el-input v-model="row_info.cipSealnum"></el-input>
+		</el-form-item>
+		<el-form-item label="cansealupCipNum">
+			<el-input v-model="row_info.cansealupCipNum"></el-input>
+		</el-form-item>
+		<el-form-item label="bulkNo">
+			<el-input v-model="row_info.bulkNo"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryTime">
+			<el-input v-model="row_info.factoryTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../cipResultDetail/getCipResultDetail',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../cipResultDetail/update' : '../cipResultDetail/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 206 - 0
Web/WEB-INF/jsp/newAdmin/cipResultDetails.jsp

@@ -0,0 +1,206 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="factoryNo"
+				label="factoryNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="tankerNo"
+				label="tankerNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="operator"
+				label="operator"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checker"
+				label="checker"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipResult"
+				label="cipResult"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createTime"
+				label="createTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="updateTime"
+				label="updateTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipSealnum"
+				label="cipSealnum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cansealupCipNum"
+				label="cansealupCipNum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="bulkNo"
+				label="bulkNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryTime"
+				label="factoryTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../cipResultDetail/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'cipResultDetail?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../cipResultDetail/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'cipResultDetail';
+			}
+		}
+	})
+</script>
+</html>
+

+ 319 - 0
Web/WEB-INF/jsp/newAdmin/cipResults.jsp

@@ -0,0 +1,319 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+	<style>
+		.db-content-wrapper{
+			display: flex;
+			flex-direction: column;
+			overflow: auto!important;
+		}
+		.db-content{
+			flex-grow: 1;
+			padding: 0 25px!important;
+			overflow: hidden;
+		}
+		.filters{
+			margin-top: 25px;
+		}
+	</style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<%--<jsp:include page="milkLeft.jsp"/>--%>
+<jsp:include page="dataShowLeft.jsp"/>
+<template>
+	<div class="filters">
+
+		&nbsp;&nbsp;&nbsp;
+			<el-input placeholder="关键字" v-model="searchKey" style="width: 200px"></el-input>
+
+		&nbsp;&nbsp;&nbsp;
+			<el-button type="primary" @click="getRows">筛 选</el-button>
+		&nbsp;&nbsp;&nbsp;
+			<span style="font-size: 14px;color:#bfcbd9">关键字:挂车号/清洗方式</span>
+			<div class="num" style="white-space:nowrap;"> 共{{totalNumber}}记录</div>
+
+	<%--<el-button type="primary" @click="create()">创建</el-button>--%>
+
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			  :height="tableMaxHeight"
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			</el-table-column>
+		<el-table-column
+				prop="cipResult"
+				label="工厂编号"
+				:formatter="formatFactoryNo"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				label="工厂"
+				prop="cipResult"
+				:formatter="formatFactory"
+				min-width="150"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carplate"
+				label="挂车号"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="cleanType"
+				label="清洗方式"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipResult"
+				label="操作人"
+				:formatter="formatOperator"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipResult"
+				label="检查人"
+				:formatter="formatChecker"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cipResult"
+				label="结果"
+				:formatter="formatCipResult"
+				min-width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="createdTime"
+				label="作业完成时间"
+				min-width="200"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				fixed="right"
+				align="center">
+			<div>
+				<el-button size="small" @click="getImages(row)">查看图片</el-button>
+			<%--	<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+			</div>
+		</el-table-column>
+	</el-table>
+
+	<el-dialog title="查看图片" v-model="showDialog">
+		<div style="display:flex;flex-wrap: wrap;align-items: flex-start ">
+			<templat v-for="row in images">
+				<img style="width: 200px"  v-for="item in row.realCipPhoto " :src="item" @click="showImg(item)">
+			</templat>
+
+		</div>
+
+		<span slot="footer" class="dialog-footer">
+        <el-button @click="showDialog = false">确定</el-button>
+    </span>
+	</el-dialog>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+
+
+	<el-dialog v-model="imageDialogVisible" size="small">
+		<img width="100%" :src="imgSrc" alt="">
+	</el-dialog>
+
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+        computed:{
+            tableMaxHeight(){
+                var height=600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if(document.getElementById('contentBody')){
+                    height=document.getElementById('contentBody').offsetHeight-192
+                }
+                return height
+            }
+        },
+		data: function () {
+			return {
+				menu: '49',
+				menu2: '1-3',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: [],
+                searchKey: '',
+                showDialog: false,
+                images:[],
+                imgSrc:'',
+                imageDialogVisible: false,
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../carCip/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize,
+                        searchKey: this.searchKey
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+            getImages: function (row) {
+                $.get({
+                    url: '../carCipSeal/all',
+                    data: {
+                        carCipId: row.id
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.images = res.data;
+                        this.showDialog = true;
+                    }
+                }.bind(this))
+            },
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'cipResult?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../cipResult/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'cipResult';
+			},
+            formatDate: function (row, column) {
+                if (row[column.property]) {
+                    return moment(row[column.property]).format('YYYY年MM月DD日  HH:mm:ss');
+                } else {
+                    return "";
+                }
+            },
+            formatFactoryNo: function (row, column) {
+			    if(row.cipResult){
+					return row.cipResult.factoryNo;
+				}
+                    return "80100013";
+            },
+            formatFactory: function (row, column) {
+                    return "华东中心工厂";
+            },
+            formatOperator: function (row, column) {
+                if(row.cipResult){
+                    return row.cipResult.operator;
+                }
+                return "沈浪";
+            },
+            formatChecker: function (row, column) {
+                if(row.cipResult){
+                    return row.cipResult.checker;
+                }
+                return "叶晨";
+            },
+            formatCipResult: function (row, column) {
+                if(row.cipResult){
+                    return row.cipResult.cipResult;
+                }
+                return "合格";
+            },
+            showImg: function (img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
+		}
+	})
+</script>
+</html>
+

+ 126 - 0
Web/WEB-INF/jsp/newAdmin/collectionMilkresult.jsp

@@ -0,0 +1,126 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="dataShowLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="交接单">
+			<el-input v-model="row_info.handOverSheetNo"></el-input>
+		</el-form-item>
+		<el-form-item label="工厂">
+			<el-input v-model="row_info.factoryNo"></el-input>
+		</el-form-item>
+		<el-form-item label="牧场">
+			<el-input v-model="row_info.farmNo"></el-input>
+		</el-form-item>
+		<el-form-item label="车牌号">
+			<el-input v-model="row_info.tankerNo"></el-input>
+		</el-form-item>
+		<el-form-item label="毛重">
+			<el-input v-model="row_info.grossWeight"></el-input>
+		</el-form-item>
+		<el-form-item label="净重">
+			<el-input v-model="row_info.quantity"></el-input>
+		</el-form-item>
+		<el-form-item label="差异">
+			<el-input v-model="row_info.quantityDiff"></el-input>
+		</el-form-item>
+		<el-form-item label="操作人">
+			<el-input v-model="row_info.operator"></el-input>
+		</el-form-item>
+		<el-form-item label="检查人">
+			<el-input v-model="row_info.checker"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button @click="back">返回</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../collectionMilkresult/getCollectionMilkresult',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+                menu: '49',
+                menu2: '1-2',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../collectionMilkresult/update' : '../collectionMilkresult/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+                        window.location="collectionMilkresults.html";
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+            back:function () {
+                window.location.href ='../admin/collectionMilkresults'
+            },
+		}
+	})
+</script>
+</html>
+

+ 423 - 0
Web/WEB-INF/jsp/newAdmin/collectionMilkresults.jsp

@@ -0,0 +1,423 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+	<style>
+		.db-content-wrapper{
+			display: flex;
+			flex-direction: column;
+			overflow: auto!important;
+		}
+		.db-content{
+			flex-grow: 1;
+			padding: 0 25px!important;
+			overflow: hidden;
+		}
+		.filters{
+			margin-top: 25px;
+		}
+	</style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="dataShowLeft.jsp"/>
+<template>
+	<div class="filters">
+		<%--<el-button type="primary" @click="create()">创建</el-button>--%>
+			&nbsp;&nbsp;&nbsp;
+				<el-input placeholder="关键字" v-model="searchKey" style="width:200px"></el-input>
+
+			&nbsp;&nbsp;&nbsp;
+				<el-button type="primary" @click="getRows">筛 选</el-button>
+			&nbsp;&nbsp;&nbsp;
+			<span style="font-size: 14px;color:#bfcbd9">关键字:交接单号/牧场编号/工厂编号/车牌号/产成品批号</span>
+		<div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			  :height="tableMaxHeight"
+			v-loading="loading">
+		<el-table-column type="expand">
+			<template scope="props">
+				<el-table :data="props.row.bulks" border
+						  stripe v-if="props.row.bulks">
+					<el-table-column
+							prop="bulkNo"
+							label="奶槽编号"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							prop="receiveMilkLine"
+							label="收奶线"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							inline-template
+							:show-overflow-tooltip="true"
+							label="采样时间"
+							width="180"
+							align="center">
+						<span>{{props.row.unloadTime.split('+')[0]}}</span>
+					</el-table-column>
+					<el-table-column
+							prop="bulkIncomingTemp"
+							label="奶槽入厂温度"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							prop="assertion"
+							label="判定信息"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							prop="checkType"
+							label="检测类型"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							prop="checkResult"
+							label="检测结果"
+							align="center">
+					</el-table-column>
+					<el-table-column
+							:context="_self"
+							width="100"
+							inline-template
+							label="检测详情"
+							align="center">
+						<el-button size="small" v-if="row.factoryDetections" @click="selsectMaterial(row)">检测详情</el-button>
+
+					</el-table-column>
+
+
+					<el-table-column
+							:context="_self"
+							width="150"
+							inline-template
+							label="检测报告"
+							align="center">
+						<div>
+							<%--<a &lt;%&ndash;v-if="row.checkReport"&ndash;%&gt; :href="getCheckReportUrl(row)">{{row.checkReportName}}</a>--%>
+							<a href="../pdf/checkreport.pdf" download="检测报告">{{row.checkReportName}}</a>
+						<%--<span v-if="!row.checkReport">{{row.checkReportName}}不存在</span>--%>
+						</div>
+					</el-table-column>
+				</el-table>
+			</template>
+		</el-table-column>
+		<el-table-column
+				prop="handOverSheetNo"
+				label="交接单"
+				width="130"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="supplierdemandPlan.factoryname"
+				label="工厂"
+				width="150"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryNo"
+				width="120"
+				label="工厂编号"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="supplierdemandPlan.suppliername"
+				width="150"
+				label="牧场"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="farmNo"
+				label="牧场编号"
+				width="100"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="tankerNo"
+				label="车牌号"
+				width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="productBatch.productCode"
+				label="产成品批号"
+				width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="supplierdemandPlan.freshmilkTransport.factoryIntime"
+				label="入厂时间"
+				width="120"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="supplierdemandPlan.freshmilkTransport.reportest"
+				label="采样员"
+				width="100"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="grossWeight"
+				label="毛重"
+				width="100"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="quantity"
+				label="净重"
+				width="100"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="quantityDiff"
+				label="差异"
+				width="100"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				:formatter="formatDate"
+				prop="unloadTime"
+				width="160"
+				label="上传时间"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				:formatter="formatDate"
+				prop="operationTime"
+				width="160"
+				label="操作时间"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="operator"
+				label="操作人"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checker"
+				label="检查人"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:show-overflow-tooltip="true"
+				prop="supplierdemandPlan.freshmilkTransport.factoryOutime"
+				label="卸奶完成时间"
+				width="120"
+				align="center">
+		</el-table-column>
+		<%--<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>--%>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+
+<template>
+	<el-dialog title="检测详情" v-model="dialogTableVisible">
+
+
+		<el-table :data="factoryDetections"  max-height="700"
+				  ref="table"
+				  style="width: 100%"
+				  element-loading-text="拼命加载中"
+				  border
+				  stripe
+				  v-loading="loading">
+
+			<el-table-column
+					sortable
+					prop="bulkNo"
+					label="奶槽号"
+					align="center">
+			</el-table-column>
+
+			<el-table-column
+					sortable
+					prop="checkName"
+					label="检测项"
+					align="center">
+			</el-table-column>
+			<el-table-column
+					sortable
+					prop="checkValue"
+					label="检测值"
+					align="center">
+			</el-table-column>
+			<el-table-column
+					sortable
+					prop="checkResult"
+					label="物料名称"
+					align="center">
+			</el-table-column>
+		</el-table>
+
+
+	</el-dialog>
+
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+        computed:{
+            tableMaxHeight(){
+                var height=600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if(document.getElementById('contentBody')){
+                    height=document.getElementById('contentBody').offsetHeight-192
+                }
+                return height
+            }
+        },
+		data: function () {
+			return {
+				menu: '49',
+				menu2: '1-2',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: [],
+                searchKey: '',
+                factoryDetections:[],
+                dialogTableVisible:false,
+
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+                this.loading = true;
+				$.get({
+					url: '../collectionMilkresult/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize,
+                        searchKey: this.searchKey
+					}
+				}).then(function (res) {
+                    this.loading = false;
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'collectionMilkresult?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../collectionMilkresult/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+            formatDate: function (row, column) {
+                if (row[column.property]) {
+                    return moment(row[column.property]).format('YYYY年MM月DD日  HH:mm:ss');
+                } else {
+                    return "";
+                }
+            },
+			create: function () {
+				window.location = 'collectionMilkresult';
+			},
+            getCheckReportUrl: function (row) {
+				return '../bulk/getFile?id='+row.id;
+			},
+            selsectMaterial: function (row) {
+				if(row.factoryDetections){
+
+                    this.factoryDetections = row.factoryDetections;
+                    this.dialogTableVisible = true;
+                }
+
+            },
+
+		}
+	})
+</script>
+</html>
+

+ 266 - 0
Web/WEB-INF/jsp/newAdmin/companyInfos.jsp

@@ -0,0 +1,266 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+   
+   <el-row class="filter-bar" :gutter="20">
+        <el-col :sm="6" :md="4" :lg="2">
+            <el-button type="primary" @click="add">添加</el-button>
+        </el-col>
+    </el-row>
+   
+    <el-table :data="rows"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading"
+              ref="table"
+              tableId="table"
+              id="table">
+        <%--<el-table-column--%>
+                <%--type="index"--%>
+                <%--width="70"--%>
+                <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="name"
+                label="企业">
+        </el-table-column>
+        <el-table-column
+                prop="username"
+                label="账号">
+        </el-table-column>
+        <el-table-column
+                prop="password"
+                label="密码">
+        </el-table-column>
+        <el-table-column
+                prop="path"
+                label="主页路径">
+        </el-table-column>
+        <el-table-column
+                prop="createTime"
+                label="创建时间"
+                :formatter="timeFormatter">
+        </el-table-column>
+        <!-- <el-table-column
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="edit(row)">编辑</el-button>
+                <el-button size="small" type="danger" @click="del(row)">删除</el-button>
+            </div>
+        </el-table-column> -->
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="total, sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+    <el-dialog
+            title="企业"
+            v-model="dialogVisible"
+            size="tiny">
+        <div>
+            <el-form label-position="left" label-width="80px">
+                <el-form-item label=企业>
+                    <el-input v-model="company.name"></el-input>
+                </el-form-item>
+                <el-form-item label=用户名>
+                    <el-input v-model="company.username"></el-input>
+                </el-form-item>
+                <el-form-item label=登录密码>
+                    <el-input v-model="company.password"></el-input>
+                </el-form-item>
+                <el-form-item label=主页路径>
+                    <el-input v-model="company.path"></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="dialogVisible=false">取消</el-button>
+            <el-button type="primary" @click="save">保存</el-button>
+        </span>
+    </el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: function () {
+            return {
+                loading: true,
+                menu: '7',
+                rows: [],
+                dialogVisible: false,
+                user: {
+                    username: '',
+                    phone: '',
+                    password: '',
+                    type: '',
+                    createTime: '',
+                    createTimeStr: '',
+                    jifen: ''
+                },
+                article: {
+                    title: '',
+                    url: '',
+                    img: '',
+                    type: ''
+                },
+                company: {
+                    name: '',
+                    username: '',
+                    password: '',
+                    path: ''
+                },
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                update: false,
+                options: [
+                    {name: '首页', value: 9},
+                    {name: '理财产品', value: 1},
+                    {name: '热销基金', value: 2},
+                    {name: '贵金属', value: 3},
+                    {name: '保险产品', value: 4},
+                    {name: '龙支付', value: 5},
+                    {name: '私人银行', value: 6},
+                    {name: '外汇业务', value: 7},
+                    {name: '客户专享', value: 8}
+                ],
+                filters: {
+                    type: ''
+                },
+                tmpImg: ''
+            };
+        },
+        methods: {
+            getData: function () {
+                this.loading = true;
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize
+                };
+                if (this.filters.type) {
+                    data.type = this.filters.type
+                }
+                $.get({
+                    url: '../companyInfo/all',
+                }).then(function (res) {
+                    this.loading = false;
+                    if (res.success) {
+                        this.rows = res.data;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            edit: function (row) {
+                this.update = true;
+                this.article = JSON.parse(JSON.stringify(row));
+                this.tmpImg = this.article.realImg;
+                this.dialogVisible = true;
+            },
+            del: function (row) {
+                this.$confirm('确认删除?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    $.post({
+                        url: '../userInfo/del',
+                        data: {
+                            id: row.id
+                        }
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('删除成功');
+                            this.getData();
+                        } else {
+                            this.$message.warning('删除失败');
+                        }
+                    }.bind(this));
+                }.bind(this)).catch(function () {
+                })
+            },
+            add: function () {
+                this.update = false;
+                this.company = {
+                    name: '',
+                    username: '',
+                    password: '',
+                    path: ''
+                };
+                
+                this.dialogVisible = true;
+            },
+            save: function () {
+                if (!this.company.name) {
+                    this.$message('请输入企业名称');
+                } else if (!this.company.username) {
+                    this.$message('请输入登录用户名');
+                } else if (!this.company.password) {
+                    this.$message('请输入密码');
+                } else if (!this.company.path) {
+                    this.$message('请输入主页路径');
+                } else {
+                    $.post({
+                        url: this.update ? '../companyInfo/update' : '../companyInfo/save',
+                        data: this.company
+                    }).then(function (res) {
+                        if (res.success) {
+                            this.$message.success('保存成功');
+                            this.dialogVisible = false;
+                            this.getData();
+                        }
+                    }.bind(this))
+                }
+            },
+            getType: function (row) {
+                var index = this.options.findIndex(function (i) {
+                    return i.value === row.type
+                });
+                if (index > -1) {
+                    return this.options[index].name;
+                } else {
+                    return '';
+                }
+            },
+            uploadSuccess: function (response, file, fileList) {
+                this.tmpImg = URL.createObjectURL(file.raw);
+                this.article.img = response.data[0];
+            },
+            timeFormatter: function (row) {
+                return new Date(row.createTime).toLocaleString()
+            }
+        }
+    })
+</script>
+</html>

+ 18 - 0
Web/WEB-INF/jsp/newAdmin/contentAfter.jsp

@@ -0,0 +1,18 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 13:49
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+</section>
+</div>
+<!-- content end -->
+</div>
+</div>
+
+<iframe src="http://172.16.84.43/main/login_cs_keep.asp?username=${sessionScope.misSuperUserId}&ticket=${sessionScope.misTicketStr}" id="loginIframe" style="display: none">
+
+
+</iframe>

+ 325 - 0
Web/WEB-INF/jsp/newAdmin/contentBefore.jsp

@@ -0,0 +1,325 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 13:49
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
+<style>
+    .db-header {
+        display: flex;
+        justify-content: space-between;
+    }
+
+    .db-header .logo {
+        display: flex;
+        align-items: center;
+    }
+
+    .db-header .logo span {
+        font-size: 17px;
+        margin-left: 16px;
+        font-weight: bold;
+    }
+
+    /*.db .db-body .db-content-wrapper {*/
+    /*padding: 60px 0 0;*/
+    /*}*/
+
+    .head-menu .el-menu-item:hover, .head-menu .el-submenu__title:hover {
+        border: none;
+        background-color: #2694C9;
+        color: #fff;
+    }
+
+    .head-menu .is-active {
+        background-color: #2694C9 !important;
+    }
+
+    .head-menu .el-menu-item {
+        border: none;
+        background-color: #22A6E1;
+        color: #fff;
+        height: 80px;
+        line-height: 80px;
+        padding: 0;
+        width: 115px;
+        text-align: center;
+    }
+
+    .el-button:hover, .el-button:focus {
+        border-color: #22A6E1;
+        color: #22A6E1;
+    }
+
+    .el-button--primary:focus, .el-button--primary:hover {
+        background: #2694C9;
+        border-color: #2694C9;
+        color: #fff;
+    }
+
+    .el-button--primary {
+        background: #22A6E1;
+        border-color: #22A6E1;
+        color: #fff;
+    }
+
+    .db-menu-wrapper .el-submenu__title {
+        background-color: #fff;
+    }
+
+    .el-pager li.active {
+        border-color: #22A6E1;
+        background-color: #22A6E1;
+        color: #fff;
+        cursor: default;
+    }
+
+    .db-menu-wrapper .el-menu-item {
+        margin: 10px 10px 0;
+        background-color: #fff;
+        border-radius: 3px;
+    }
+
+    .db-menu-wrapper .el-menu-item.is-active {
+        background-color: #2FACE9;
+        color: #fff;
+
+    }
+
+    .db-menu-wrapper .el-submenu__title {
+        margin: 10px 10px 0;
+        border-radius: 3px;
+    }
+
+    .db-menu-wrapper .is-active .el-submenu__title {
+        background-color: #2FACE9;
+        color: #fff;
+    }
+
+    .iframe {
+        width: 100%;
+        height: 100%;
+        border: none;
+        overflow: scroll;
+    }
+
+    #app {
+        display: flex;
+        flex-direction: column;
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        overflow: hidden;
+    }
+
+    .db-menu-wrapper::-webkit-scrollbar {
+        width: 0px;
+        height: 1px;
+    }
+
+    .db-menu-wrapper::-webkit-scrollbar-thumb {
+        border-radius: 5px;
+        -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+        background: rgba(0, 0, 0, 0.2);
+    }
+
+    .head-menu .el-submenu:hover .el-submenu__title {
+        background: #2694C9;
+        border-color: #2694C9;
+    }
+
+    .head-menu .el-submenu {
+        border: none;
+        background-color: #22A6E1;
+        color: #fff;
+        height: 80px;
+        line-height: 80px;
+        padding: 0;
+        width: 115px;
+        text-align: center;
+    }
+
+    .head-menu .el-submenu .el-submenu__title {
+        background-color: #22A6E1;
+        color: #fff;
+        height: 80px;
+        line-height: 80px;
+        padding: 0;
+        width: 115px;
+        text-align: center;
+    }
+
+    .head-menu .el-submenu > .el-menu {
+        top: 79px !important;
+        background-color: #22A6E1;
+    }
+
+    .head-menu .el-submenu > .el-menu li {
+        background-color: #22A6E1;
+        color: #fff;
+    }
+
+    .head-menu .el-submenu > .el-menu li:hover {
+        background: #2694C9;
+    }
+
+    .head-menu .el-submenu .el-submenu__icon-arrow {
+        color: #fff;
+    }
+
+    #top .el-menu {
+        background-color: #22A6E1 !important;
+    }
+
+
+</style>
+<script>
+    function logout() {
+        $.post({
+            url: '../super/logout',
+            data: {}
+        }).then(function (res) {
+            window.location.href = '../admin/login'
+        })
+    }
+
+    var checkLogin;
+    var loginFlag = false;
+
+    clearInterval(checkLogin);
+    checkLogin = setInterval(function () {
+        $.post({
+            url: '../super/checkLogin',
+            data: {}
+        }).then(function (res) {
+            if (!res.success) {
+
+                window.location.href = '../admin/login'
+
+                //clearInterval(checkLogin);
+                //alert("登录超时,请重新登录")
+
+
+            }
+        }).catch(function () {
+
+            window.location.href = '../admin/login'
+
+            //alert("登录超时,请重新登录")
+        })
+
+    }, 2000);
+
+
+    window.onload = function () {
+        resets();
+    }
+
+
+    //给input添加校验sql注入的方法
+    function resets() {
+
+        var arr = new Array('button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'reset', 'submit');
+
+        var controls = window.document.getElementsByTagName('input');
+        for (var i = 0; i < controls.length; i++) {
+            if (arr.indexOf(controls[i].type) < 0) {
+                controls[i].setAttribute("onblur", 'parent.AntiSqlValid(this)');
+            }
+        }
+
+    }
+
+    //防止SQL注入
+    function AntiSqlValid(oField) {
+        re = /select|update|delete|exec|count|’|"|=|;|>|<|%/i;
+        if (re.test(oField.value)) {
+            alert("请您不要在参数中输入特殊字符和SQL关键字!"); //注意中文乱码
+            oField.value = '';
+            //oField.className = "errInfo";
+            oField.focus();
+            return false;
+        }
+    }
+
+</script>
+
+<div id="app" class="db">
+    <header class="db-header" id="top">
+        <div class="logo" style="min-width: 350px">
+            <img style=" width: 96px;" src="${pageContext.request.contextPath}/images/logo2.png" alt="">
+            <span>奶源追溯管理系统</span>
+        </div>
+        <c:set var="powerStr" value="${powerStr}"/>
+        <el-menu :default-active="menu" class="el-menu-demo head-menu" mode="horizontal" unique-opened>
+            <c:if test="${fn:contains(powerStr,'#23#')}">
+                <a href="${pageContext.request.contextPath}/admin/freshmilkProducesIndex">
+                    <el-menu-item index="2">奶源管理</el-menu-item>
+                </a>
+            </c:if>
+
+            <c:if test="${fn:contains(powerStr,'#1#')}">
+                <a href="${pageContext.request.contextPath}/admin/mapAll?status=0">
+                    <el-menu-item index="5">地图监控</el-menu-item>
+                </a>
+            </c:if>
+
+            <c:if test="${fn:contains(powerStr,'#2#')}">
+                <a href="${pageContext.request.contextPath}/admin/milkPlans">
+                    <el-menu-item index="0">计划管理</el-menu-item>
+                </a>
+            </c:if>
+            <c:if test="${fn:contains(powerStr,'#3#')}">
+                <a href="${pageContext.request.contextPath}/admin/allHandovernosIndex">
+                    <el-menu-item index="1">交接单管理</el-menu-item>
+                </a>
+            </c:if>
+
+
+            <c:if test="${fn:contains(powerStr,'#6#')}">
+                <a href="${pageContext.request.contextPath}/admin/supplierdemandPlansIndex">
+                    <el-menu-item index="4">物流调度</el-menu-item>
+                </a>
+            </c:if>
+
+            <c:if test="${fn:contains(powerStr,'#46#')}">
+                <a href="${pageContext.request.contextPath}/admin/allHandovernosShowIndex">
+                    <el-menu-item index="49">数据报表</el-menu-item>
+                </a>
+            </c:if>
+
+            <c:if test="${fn:contains(powerStr,'#7#')}">
+                <a href="${pageContext.request.contextPath}/admin/systemindex">
+                    <el-menu-item index="7">系统设置</el-menu-item>
+                </a>
+            </c:if>
+            <el-submenu index="9">
+                <template slot="title">${sessionScope.userNamea}</template>
+                <a href="${pageContext.request.contextPath}/admin/changePassword">
+                    <el-menu-item index="9-1">修改密码</el-menu-item>
+                </a>
+
+                <el-menu-item index="9-2" onclick="logout()">退出登录</el-menu-item>
+
+
+            </el-submenu>
+
+
+        </el-menu>
+
+
+    </header>
+
+    <%--<div class="db-body">--%>
+
+    <%--<!-- menu end -->--%>
+
+    <%--<!-- content start -->--%>
+    <%--<div class="db-content-wrapper">--%>
+<%--<section class="db-content">--%>

+ 111 - 0
Web/WEB-INF/jsp/newAdmin/cylindeApply.jsp

@@ -0,0 +1,111 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="carplate">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item label="carno">
+			<el-input v-model="row_info.carno"></el-input>
+		</el-form-item>
+		<el-form-item label="incylinderName">
+			<el-input v-model="row_info.incylinderName"></el-input>
+		</el-form-item>
+		<el-form-item label="incylinderCount">
+			<el-input v-model="row_info.incylinderCount"></el-input>
+		</el-form-item>
+		<el-form-item label="createUser">
+			<el-input v-model="row_info.createUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createTime">
+			<el-input v-model="row_info.createTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../cylindeApply/getCylindeApply',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../cylindeApply/update' : '../cylindeApply/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 176 - 0
Web/WEB-INF/jsp/newAdmin/cylindeApplys.jsp

@@ -0,0 +1,176 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carno"
+				label="carno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="incylinderName"
+				label="incylinderName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="incylinderCount"
+				label="incylinderCount"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createUser"
+				label="createUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createTime"
+				label="createTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../cylindeApply/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'cylindeApply?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../cylindeApply/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'cylindeApply';
+			}
+		}
+	})
+</script>
+</html>
+

+ 126 - 0
Web/WEB-INF/jsp/newAdmin/cylinderCip.jsp

@@ -0,0 +1,126 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="carno">
+			<el-input v-model="row_info.carno"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryFullname">
+			<el-input v-model="row_info.factoryFullname"></el-input>
+		</el-form-item>
+		<el-form-item label="temper">
+			<el-input v-model="row_info.temper"></el-input>
+		</el-form-item>
+		<el-form-item label="conductance">
+			<el-input v-model="row_info.conductance"></el-input>
+		</el-form-item>
+		<el-form-item label="flow">
+			<el-input v-model="row_info.flow"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../cylinderCip/getCylinderCip',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../cylinderCip/update' : '../cylinderCip/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 201 - 0
Web/WEB-INF/jsp/newAdmin/cylinderCips.jsp

@@ -0,0 +1,201 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carno"
+				label="carno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryFullname"
+				label="factoryFullname"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="temper"
+				label="temper"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="conductance"
+				label="conductance"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="flow"
+				label="flow"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../cylinderCip/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'cylinderCip?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../cylinderCip/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'cylinderCip';
+			}
+		}
+	})
+</script>
+</html>
+

+ 79 - 0
Web/WEB-INF/jsp/newAdmin/dataShowLeft.jsp

@@ -0,0 +1,79 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 15293
+  Date: 2017/11/17
+  Time: 10:23
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<div class="db-body">
+
+    <template>
+        <aside class="db-menu-wrapper">
+            <c:set var="powerStr" value="${powerStr}"/>
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#47#')}">
+                    <el-submenu index="1">
+                        <template slot="title">追踪追溯查询</template>
+                        <c:if test="${fn:contains(powerStr,'#48#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernosShow?status=100">
+                                <el-menu-item index="1-1">交接单批号追溯查询</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#53#')}">
+                        <a href="${pageContext.request.contextPath}/admin/collectionMilkresults">
+                            <el-menu-item index="1-2">生鲜乳生产流向查询</el-menu-item>
+                        </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#26#')}">
+                            <a href="${pageContext.request.contextPath}/admin/cipResults">
+                                <el-menu-item index="1-3">工厂CIP过程查询</el-menu-item>
+                            </a>
+                        </c:if>
+                    </el-submenu>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#49#')}">
+                    <el-submenu index="2">
+                        <template slot="title">监管报表</template>
+                        <c:if test="${fn:contains(powerStr,'#50#')}">
+                            <a href="${pageContext.request.contextPath}/admin/passPercent">
+                                <el-menu-item index="2-1">奶源合格率对比趋势</el-menu-item>
+                            </a>
+                        </c:if>
+                        <%--<c:if test="${fn:contains(powerStr,'#51#')}">
+                            <a href="${pageContext.request.contextPath}/admin/milkDataShow?menuIndex=2-2">
+                                <el-menu-item index="2-2">牛群数量变化趋势</el-menu-item>
+                            </a>
+                        </c:if>--%>
+                        <c:if test="${fn:contains(powerStr,'#52#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernosShow?status=101">
+                                <el-menu-item index="2-3">异常信息记录</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#64#')}">
+                            <a href="${pageContext.request.contextPath}/admin/warningInfos">
+                                <el-menu-item index="2-4">预警信息</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#65#')}">
+                            <a href="${pageContext.request.contextPath}/admin/milkPercent">
+                                <el-menu-item index="2-5">生鲜乳数量对比趋势</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#66#')}">
+                            <a href="${pageContext.request.contextPath}/admin/percent">
+                                <el-menu-item index="2-6">奶源质量对比趋势</el-menu-item>
+                            </a>
+                        </c:if>
+                    </el-submenu>
+                </c:if>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper">
+        <section class="db-content" id="contentBody">

+ 162 - 0
Web/WEB-INF/jsp/newAdmin/departInfo.jsp

@@ -0,0 +1,162 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+    <el-form ref="form" :model="row_info" label-width="80px">
+        <el-form-item label="部门编号">
+            <el-input v-model="row_info.departdb"></el-input>
+        </el-form-item>
+        <%--		<el-form-item label="部门关系">
+                    <el-input v-model="row_info.leaf"></el-input>
+                </el-form-item>--%>
+        <el-form-item label="部门关系">
+        <el-cascader
+                v-model="leaf"
+                :options="departs"
+                change-on-select
+                :show-all-levels="false"
+                style="width: 70%"
+        ></el-cascader>
+    </el-form-item>
+        <el-form-item label="部门全称">
+            <el-input v-model="row_info.departName"></el-input>
+        </el-form-item>
+        <el-form-item label="部门简称">
+            <el-input v-model="row_info.title"></el-input>
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+            <el-button @click="back">返回</el-button>
+        </el-form-item>
+    </el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            var id = getQueryString('id');
+            if (id) {
+                $.get({
+                    url: '../departInfo/getDepartInfo',
+                    data: {
+                        id: id
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.edit = true;
+                        this.row_info = res.data;
+                        this.leaf = res.data.leaf.split(",");
+
+                    }
+                }.bind(this));
+            }
+                $.get({
+                    url: '../userInfo/departInfoTree',
+                    data: {
+                        includeParent:1
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        function parse(list) {
+                            if (list) {
+                                list.forEach(function (t) {
+                                    t.value = t.id;
+                                    t.label = t.name + "(" + t.id + ")";
+                                    if (t.children && t.children.length > 0) {
+                                        parse(t.children)
+                                    }
+                                })
+                            }
+                            return list;
+                        }
+
+                        this.departs = parse(res.data.pp);
+                    }
+                }.bind(this));
+
+        },
+        data: function () {
+            return {
+                menu: '7',
+                menu2: '8',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                edit: false,
+                tab: 1,
+                row_info: {leaf: ''},
+                leaf: [],
+                departs: []
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                if (!this.leaf.length > 0) {
+                    this.$message.error("部门关系不能为空!");
+                } else if(this.row_info.departdb ==this.leaf[this.leaf.length-1]){
+                    this.$message.error("部门关系不能等于部门本身!");
+                }else{
+                    var data = JSON.parse(JSON.stringify(this.row_info));
+
+                    data.leaf =this.leaf.join();
+                    delete  data.createTime;
+
+
+                    $.post({
+                        url: this.edit ? '../departInfo/update' : '../departInfo/save',
+                        data: data
+                    }).then(function (res) {
+                        if (res.success) {
+                            if (!this.edit) {
+                                this.row_info.id = res.data;
+                            }
+                            this.edit = true;
+                            this.$message.success(this.edit ? '保存成功' : '创建成功');
+                            window.location = "departInfos"+ getPageString("?");
+                        } else {
+                            this.$message.error(this.edit ? '保存失败' : '创建失败');
+                        }
+                    }.bind(this))
+                }
+
+            },
+
+            back: function () {
+                window.location.href = '../admin/departInfos';
+            }
+        }
+    })
+</script>
+</html>
+

+ 282 - 0
Web/WEB-INF/jsp/newAdmin/departInfos.jsp

@@ -0,0 +1,282 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯</title>
+    <style>
+        .db-content-wrapper {
+            display: flex;
+            flex-direction: column;
+            overflow: auto !important;
+        }
+
+        .db-content {
+            flex-grow: 1;
+            padding: 0 25px !important;
+            overflow: auto;
+        }
+
+        .filters {
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+
+    <el-tree
+            :data="data2"
+            node-key="id"
+            ref="tree"
+
+            highlight-current
+            :props="defaultProps">
+    </el-tree>
+
+    <div class="filters">
+        <el-button type="primary" @click="create()">创建</el-button>
+        <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+    </div>
+
+
+    <el-table :data="rows"
+              ref="table"
+              :height="tableMaxHeight"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading">
+        <%--<el-table-column--%>
+        <%--type="index"--%>
+        <%--width="70"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                label="状态"
+                width="80"
+                inline-template
+                align="center">
+            <el-switch
+                    :value="row.useFlag===0"
+                    on-color="#13ce66"
+                    off-color="#ff4949"
+                    on-text="启用"
+                    off-text="停用"
+                    @change="updateUseFlag(row)"
+            >
+            </el-switch>
+        </el-table-column>
+        <el-table-column
+                prop="departdb"
+                label="部门编号"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="leaf"
+                label="部门关系"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="departName"
+                label="部门全称"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="title"
+                label="部门简称"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="createTime"
+                width="160"
+                label="创建时间"
+                :formatter="formatDate"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">编辑</el-button>
+                <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+
+            if (getQueryString('currentPage')) {
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+
+            this.getRows();
+            $.get({
+                url: '../userInfo/departInfoTree',
+                data: {}
+            }).then(function (res) {
+                if (res.success) {
+                    this.data2 = res.data.pp;
+                }
+            }.bind(this));
+        },
+        computed: {
+            tableMaxHeight() {
+                var height = 600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if (document.getElementById('contentBody')) {
+                    height = document.getElementById('contentBody').offsetHeight - 235
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '7',
+                menu2: '8',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                data2: '',
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                defaultProps: {
+                    children: 'children',
+                    label: 'name'
+                },
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                $.get({
+                    url: '../departInfo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                window.location = 'departInfo?id=' + row.id + "&currentPage=" + this.currentPage + "&pageSize=" + this.pageSize;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../departInfo/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            formatDate: function (row, column) {
+                if (row[column.property]) {
+                    return moment(row[column.property]).format('YYYY年MM月DD日  HH:mm:ss');
+                } else {
+                    return "";
+                }
+            },
+            create: function () {
+                window.location = 'departInfo';
+            },
+            updateUseFlag: function (row) {
+
+                if (row.useFlag === 0) {
+                    row.useFlag = 1;
+                } else {
+                    row.useFlag = 0;
+                }
+
+                $.post({
+                    url: '../departInfo/update',
+                    data: {
+                        id: row.id,
+                        useFlag: row.useFlag
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('保存成功');
+                        //this.getRows();
+                    } else {
+                        this.$message.error('保存失败');
+                    }
+                }.bind(this))
+            }
+        }
+    })
+</script>
+</html>
+

+ 289 - 0
Web/WEB-INF/jsp/newAdmin/detail.html

@@ -0,0 +1,289 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Document</title>
+	<link rel="stylesheet" href="https://unpkg.com/element-ui@2.0.2//lib/theme-chalk/index.css">
+	<script src="js/vue.js"></script>
+	<script src="js/index.js"></script>
+	<style>
+		.contain{
+			border-left:1px solid #EBEBEB;
+			padding-bottom:20px;
+		}
+		.contain>span{
+			width:10px;
+			height:10px;
+			border-radius:50%;
+			background:#EBEBEB;
+			display:block;
+			margin-left:-5px;
+		}
+		.contain>span.active{
+			background: #2BABE7;
+		}
+		.contain>h4{
+			-webkit-margin-before: -15px;
+			-webkit-margin-start: 15px;
+		}
+		.bg_gray{
+			margin-left: 50px;
+			background: #F2F4F5;
+			padding: 10px 15px;
+			margin-bottom:20px;
+		}
+		.bg_gray>div{
+			height:34px;
+			line-height:34px;
+		}
+		.bg_gray>div label{
+			display:inline-block;
+			width:100px;
+			font-weight:600;
+		}
+		.bg_gray>div span{
+			display:inline-block;
+			width:200px;
+		}
+	</style>
+</head>
+<body>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>牧场代码</label>
+				<span>1111</span>
+				<label>车牌号码</label>
+				<span>沪1111</span>
+			</div>
+			<div>
+				<label>牧场</label>
+				<span>1111</span>
+				<label>车辆编号</label>
+				<span>沪1111</span>
+			</div>
+			<div>
+				<label>收货单位</label>
+				<span>1111</span>
+				<label>司机</label>
+				<span>沪1111</span>
+			</div>
+			<div>
+				<label>计划调运数</label>
+				<span>1111</span>
+				<label>联系方式</label>
+				<span>沪1111</span>
+			</div>
+			<div>
+				<label>装载要求</label>
+				<span>1111</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>牧场</h4>
+		<div class="bg_gray">
+			<div>
+				<label>进场时间</label>
+				<span>2017-00-00</span>
+			</div>
+			<div>
+				<label>车辆皮重</label>
+				<span>300</span>
+				<label>称重时间</label>
+				<span>某某物流公司</span>
+				<label>称重员</label>
+				<span>某某物流公司</span>
+			</div>
+
+			<div style="margin-top:10px">
+				<label>车辆皮重</label>
+				<span>300</span>
+				<label>称重时间</label>
+				<span>某某物流公司</span>
+				<label>称重员</label>
+				<span>某某物流公司</span>
+			</div>
+
+
+
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span class="active"></span>
+		<h4>牧场</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		<div class="bg_gray">
+			<table>
+				<tr>
+					<td>1</td>
+					<td>2</td>
+					<td>3</td>
+					<td>4</td>
+					<td>5</td>
+				</tr>
+			</table>
+		</div>
+	</div>
+
+
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+	<div class="contain">
+		<span></span>
+		<h4>调度</h4>
+		<div class="bg_gray">
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+			<div>
+				<label>交接单号</label>
+				<span>54042032542064512</span>
+				<label>物流公司</label>
+				<span>某某物流公司</span>
+			</div>
+		</div>
+		
+	</div>
+
+</body>
+</html>

+ 642 - 0
Web/WEB-INF/jsp/newAdmin/detail.jsp

@@ -0,0 +1,642 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 77119
+  Date: 2017/11/14
+  Time: 14:10
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<!doctype html>
+<html lang="en">
+<head>
+    <jsp:include page="head.jsp"/>
+    <meta charset="UTF-8">
+    <title>Document</title>
+    <link rel="stylesheet" href="https://unpkg.com/element-ui@2.0.2//lib/theme-chalk/index.css">
+    <script src="js/vue.js"></script>
+    <script src="js/index.js"></script>
+    <style>
+        .contain {
+            border-left: 1px solid #EBEBEB;
+            padding-bottom: 20px;
+        }
+
+        .contain > span {
+            width: 10px;
+            height: 10px;
+            border-radius: 50%;
+            background: #EBEBEB;
+            display: block;
+            margin-left: -5px;
+        }
+
+        .contain > span.active {
+            background: #2BABE7;
+        }
+
+        .contain > h4 {
+            -webkit-margin-before: -15px;
+            -webkit-margin-start: 15px;
+        }
+
+        .bg_gray {
+            margin-left: 50px;
+            background: #F2F4F5;
+            padding: 10px 15px;
+            margin-bottom: 20px;
+        }
+
+        .bg_gray > div {
+            height: 34px;
+            line-height: 34px;
+        }
+
+        .bg_gray > div label {
+            display: inline-block;
+            width: 100px;
+            font-weight: 600;
+        }
+
+        .bg_gray > div span {
+            display: inline-block;
+            width: 200px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="db-body">
+    <template>
+        <aside class="db-menu-wrapper">
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#8#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos">
+                        <el-menu-item index="0-1">全部交接单</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#9#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-1">
+                        <el-menu-item index="-1">待调度</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#10#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=1">
+                        <el-menu-item index="1">运输中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#11#')}">
+                    <el-submenu index="2">
+                        <template slot="title">牧场</template>
+                        <c:if test="${fn:contains(powerStr,'#12#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=2">
+                                <el-menu-item index="2-2">进入牧场</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#13#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=3">
+                                <el-menu-item index="2-3">进场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#14#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=4">
+                                <el-menu-item index="2-4">检测完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#15#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=5">
+                                <el-menu-item index="2-5">装奶完成</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#16#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=6">
+                                <el-menu-item index="2-6">出场称重</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                            <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                            <%--</a>--%>
+                    </el-submenu>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#17#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=7">
+                        <el-menu-item index="7">返程中</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#18#')}">
+                    <el-submenu index="3">
+                        <template slot="title">工厂</template>
+                        <c:if test="${fn:contains(powerStr,'#19#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">
+                                <el-menu-item index="3-9">进入工厂</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#20#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=10">
+                                <el-menu-item index="3-10">工厂取样</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">--%>
+                            <%--<el-menu-item index="3-9">采样&工厂接奶</el-menu-item>--%>
+                            <%--</a>--%>
+
+                    </el-submenu>
+                </c:if>
+                <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">--%>
+                <%--<el-menu-item index="10">加工厂接奶</el-menu-item>--%>
+                <%--</a>--%>
+                <c:if test="${fn:contains(powerStr,'#21#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">
+                        <el-menu-item index="11">交接单完成</el-menu-item>
+                    </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#22#')}">
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-2">
+                        <el-menu-item index="-2">异常单</el-menu-item>
+                    </a>
+                </c:if>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+    <div class="db-content-wrapper">
+        <section class="db-content">
+            <span></span>
+            <h4>调度</h4>
+            <div class="bg_gray">
+                <div>
+                    <label>交接单号</label>
+                    <span>54042032542064512</span>
+                    <label>物流公司</label>
+                    <span>某某物流公司</span>
+                </div>
+                <div>
+                    <label>牧场代码</label>
+                    <span>1111</span>
+                    <label>车牌号码</label>
+                    <span>沪1111</span>
+                </div>
+                <div>
+                    <label>牧场</label>
+                    <span>1111</span>
+                    <label>车辆编号</label>
+                    <span>沪1111</span>
+                </div>
+                <div>
+                    <label>收货单位</label>
+                    <span>1111</span>
+                    <label>司机</label>
+                    <span>沪1111</span>
+                </div>
+                <div>
+                    <label>计划调运数</label>
+                    <span>1111</span>
+                    <label>联系方式</label>
+                    <span>沪1111</span>
+                </div>
+                <div>
+                    <label>装载要求</label>
+                    <span>1111</span>
+                </div>
+            </div>
+
+    </div>
+    <div class="db-content-wrapper">
+        <section class="db-content">
+            <span></span>
+            <h4>牧场</h4>
+            <div class="bg_gray">
+                <div>
+                    <label>进场时间</label>
+                    <span>2017-00-00</span>
+                    <label>门卫员</label>
+                    <span>王鑫</span>
+                </div>
+                <div>
+                    <label>车辆皮重</label>
+                    <span>300</span>
+                    <label>称重时间</label>
+                    <span>20151211</span>
+                    <label>称重员</label>
+                    <span>往外</span>
+                </div>
+                <!--工厂自检数据-->
+                <div>
+                    <table>
+
+                        <tr>
+                            <th>自检数据</th>
+                        </tr>
+                        <tr>
+                            <th>酒精实验</th>
+                        </tr>
+                        <tr>
+                            <th>口感</th>
+                        </tr>
+                        <tr>
+                            <th>抗生素</th>
+                        </tr>
+                        <tr>
+                            <th>热稳定实验</th>
+                        </tr>
+                        <tr>
+                            <th>美兰实验</th>
+                        </tr>
+                        <tr>
+                            <th>酸度</th>
+                        </tr>
+                        <span></span>
+                        <tr>
+                            <th>抗生素</th>
+                        </tr>
+                        <tr>
+                            <th>四环素</th>
+                        </tr>
+                        <tr>
+                            <th>黄曲霉素</th>
+                        </tr>
+                    </table>
+                </div>
+                <!--撞奶信息-->
+                <span></span>
+                <div>
+                    <table>
+
+                        <tr>
+                            <th>装奶信息</th>
+                        </tr>
+                        <tr>
+                            <th>清洗铅封号</th>
+                        </tr>
+                        <tr>
+                            <th>奶仓号</th>
+                        </tr>
+                        <tr>
+                            <th>奶槽号</th>
+                        </tr>
+                        <tr>
+                            <th>出缸温度</th>
+                        </tr>
+                        <tr>
+                            <th>槽车铅封号</th>
+                        </tr>
+                        <tr>
+                            <th>留样ID</th>
+                        </tr>
+                        <tr>
+                            <th>随车样</th>
+                        </tr>
+                    </table>
+                    <div>
+                        <label>装奶时间</label>
+                        <span>金山</span>
+                        <label>装奶员</label>
+                        <span>中心</span>
+                    </div>
+                </div>
+                <span></span>
+                <div>
+                    <label>车辆毛重</label>
+                    <span>金山</span>
+                    <label>称重时间</label>
+                    <span>中心</span>
+                </div>
+                <div>
+                    <label>出场时间</label>
+                    <span>金山</span>
+                </div>
+            </div>
+    </div>
+    <div class="contain">
+        <span></span>
+        <h4>运输</h4>
+        <div class="bg_gray">
+            <div>
+                <label>起点牧场</label>
+                <span>金山</span>
+                <label>终点工厂</label>
+                <span>中心</span>
+            </div>
+            <div>
+                <label>距离</label>
+                <span>564km</span>
+                <label>大约时程</label>
+                <span>6</span>
+            </div>
+            <div>
+                <label>最低温度</label>
+                <span>3°</span>
+                <label>最高温度</label>
+                <span>6°</span>
+            </div>
+        </div>
+    </div>
+    <div class="contain">
+        <span></span>
+        <h4>工厂</h4>
+        <div class="bg_gray">
+            <div>
+                <label>进场时间</label>
+                <span>2017</span>
+            </div>
+            <div>
+                <label>车辆皮重</label>
+                <span>2017</span>
+                <label>称重时间</label>
+                <span>2017</span>
+                <label>称重员</label>
+                <span>2017</span>
+            </div>
+
+        </div>
+        <span></span>
+        <div>
+            <table>
+                <tr>
+                    <th>检测数据</th>
+                </tr>
+                <tr>
+                    <th>取样时间</th>
+                </tr>
+                <tr>
+                    <th>取样人员信息</th>
+                </tr>
+                <tr>
+                    <th>检验时间</th>
+                </tr>
+                <tr>
+                    <th>检验标准</th>
+                </tr>
+                <tr>
+                    <th>检验标准名称</th>
+                </tr>
+                <tr>
+                    <th>检验结果</th>
+                </tr>
+                <tr>
+                    <th>检测机构</th>
+                </tr>
+                <tr>
+                    <th>检验人员</th>
+                </tr>
+                <tr>
+                    <th>进场温度</th>
+                </tr>
+                <tr>
+                    <th>检验人员</th>
+                </tr>
+                <tr>
+                    <th rowspan="3">理化滴样</th>
+                    <td>脂肪</td>
+                </tr>
+                <tr>
+                    <td>蛋白</td>
+                </tr>
+                <tr>
+                    <td>脂肪</td>
+                </tr>
+                <tr>
+                    <th>储存缸号</th>
+                </tr>
+                <tr>
+                    <th>冰点</th>
+                </tr>
+                <tr>
+                    <th>感官</th>
+                </tr>
+                <tr>
+                    <th>相对密度</th>
+                </tr>
+                <tr>
+                    <th>酸度</th>
+                </tr>
+                <tr>
+                    <th>煮沸后酸度差</th>
+                </tr>
+                <tr>
+                    <th>杂质度</th>
+                </tr>
+                <tr>
+                    <th>酒精实验</th>
+                </tr>
+                <tr>
+                    <th>掺碱实验</th>
+                </tr>
+                <tr>
+                    <th>抗生素</th>
+                </tr>
+                <tr>
+                    <th>油浴</th>
+                </tr>
+                <tr>
+                    <th>过氧化氢</th>
+                </tr>
+                <tr>
+                    <th>亚硝酸盐</th>
+                </tr>
+                <tr>
+                    <th>重铬酸盐</th>
+                </tr>
+                <tr>
+                    <th>磷酸盐</th>
+                </tr>
+                <tr>
+                    <th>添加菌种名称</th>
+                </tr>
+                <tr>
+                    <th>杀菌温度标准值</th>
+                </tr>
+                <tr>
+                    <th>接种温度标准值</th>
+                </tr>
+                <tr>
+                    <th>培养温度标准值</th>
+                </tr>
+                <tr>
+                    <th>发酵起时间</th>
+                </tr>
+                <tr>
+                    <th>发酵止时间</th>
+                </tr>
+                <tr>
+                    <th rowspan="2">三聚氰胺</th>
+                    <td>读数</td>
+                </tr>
+                <tr>
+                    <th>+/-</th>
+                </tr>
+                <tr>
+                    <th rowspan="2">黄曲霉素</th>
+                    <td>读数</td>
+                </tr>
+                <tr>
+                    <th>+/-</th>
+                </tr>
+                <tr>
+                    <th rowspan="3">内酰胺酶</th>
+                    <td>读数</td>
+                </tr>
+                <tr>
+                    <th>+/-</th>
+                </tr>
+                <tr>
+                    <th rowspan="4">尿素</th>
+                    <td>二分钟显色</td>
+                </tr>
+                <tr>
+                    <th>+/-</th>
+                </tr>
+                <tr>
+                    <th rowspan="5">环层颜色</th>
+                    <td>环层颜色</td>
+                </tr>
+                <tr>
+                    <th>+/-</th>
+                </tr>
+                <tr>
+                    <th rowspan="6">硫氰酸铵</th>
+                    <td>颜色</td>
+                </tr>
+                <tr>
+                    <th>保存情况</th>
+                </tr>
+                <tr>
+                    <th>备注</th>
+                </tr>
+            </table>
+
+        </div>
+
+        <div>
+            <table>
+                <tr>
+                    <th>装奶信息</th>
+                </tr>
+                <tr>
+                    <th>奶槽铅封号</th>
+                </tr>
+                <tr>
+                    <th>仓口铅封号</th>
+                </tr>
+                <tr>
+                    <th>奶槽码</th>
+                </tr>
+                <tr>
+                    <th>奶线码</th>
+                </tr>
+            </table>
+        </div>
+
+        <div>
+            <label>装奶时间</label>
+            <span>金山</span>
+            <label>装奶员</label>
+            <span>中心</span>
+        </div>
+        <div>
+            <tr>
+                <th>清洗时间</th>
+            </tr>
+            <tr>
+                <th>清洗方式</th>
+            </tr>
+            <tr>
+                <th>清洗槽口铅封号</th>
+            </tr>
+            <tr>
+                <th>清洗仓口铅封号</th>
+            </tr>
+        </div>
+        <div>
+            <label>出场时间</label>
+            <span>3000</span>
+        </div>
+    </div>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            var id = getQueryString('id');
+            if (id) {
+                $.get({
+                    url: '../supplierdemandPlan/detailsPage',
+                    data: {
+                        id: id
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.edit = true;
+                        this.row_info = res.data;
+                        if (!this.row_info.driverId) {
+                            this.row_info.driverId = ''
+                        }
+                        if (!this.row_info.carplate) {
+                            this.row_info.carplate = ''
+                        }
+                    }
+                }.bind(this));
+            }
+        },
+        data: function () {
+            return {
+                menu: '0-0',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                edit: false,
+                tab: 1,
+                row_info: {
+                    driverId: '',
+                    carplate: ''
+
+                },
+                driverInfos: [],
+                carplateInfos: []
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                var data = JSON.parse(JSON.stringify(this.row_info));
+                $.get({
+                    url: this.edit ? '../supplierdemandPlan/update' : '../supplierdemandPlan/save',
+                    data: data
+                }).then(function (res) {
+                    if (res.success) {
+                        if (!this.edit) {
+                            this.row_info.id = res.data;
+                        }
+                        this.edit = true;
+                        this.$message.success(this.edit ? '保存成功' : '创建成功');
+                        window.location.href("../admin/supplierdemandPlans");
+                    } else {
+                        this.$message.error(this.edit ? '保存失败' : '创建失败');
+                    }
+                }.bind(this))
+            },
+        }
+    })
+</script>
+</html>

+ 181 - 0
Web/WEB-INF/jsp/newAdmin/discountInfo.jsp

@@ -0,0 +1,181 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+    <style>
+        .avatar-uploader .el-upload {
+            border: 1px dashed #d9d9d9;
+            border-radius: 6px;
+            cursor: pointer;
+            position: relative;
+            overflow: hidden;
+        }
+
+        .avatar-uploader .el-upload:hover {
+            border-color: #20a0ff;
+        }
+        .avatar-uploader-icon {
+            font-size: 28px;
+            color: #8c939d;
+            width: 178px;
+            height: 178px;
+            line-height: 178px;
+            text-align: center;
+        }
+
+        .avatar {
+            width: 178px;
+            height: 178px;
+            display: block;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-form ref="form" :model="row_info"
+             label-width="160px">
+
+<!--         <el-form-item label='封面'>
+            <el-upload class="avatar-uploader" action="../assets/uploadFile"
+                       :show-file-list="false" :on-success="handleAvatarScucess"
+                       :before-upload="beforeAvatarUpload"><img
+                    v-if="row_info.realImg" :src="row_info.realImg" class="avatar">
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>
+            (尺寸1920*680px,分辨率72,格式jpg,图片质量70)
+        </el-form-item> -->
+
+		 <el-form-item label="内容">
+            <el-input
+                    type="textarea"
+                    :rows="2"
+                    v-model="row_info.content">
+
+            </el-input>
+        </el-form-item>
+
+        <el-form-item
+                label="超链接(选填)">
+            <el-input v-model="row_info.url"></el-input>
+        </el-form-item>
+
+        <el-form-item>
+            <el-button
+                    type="primary" @click="onSubmit">{{edit?'立即创建':'保存'}}
+            </el-button>
+            <el-button>取消</el-button>
+        </el-form-item>
+
+    </el-form>
+
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r   = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el     : '#app',
+		created: function () {
+			var id = getQueryString('id');
+			id = 1;
+			if (id) {
+				$.get({
+					url : '../discountInfo/getDiscountInfo',
+					data: {
+						id : id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						if (!res.data.content) {
+							res.data.content = '';
+						}
+						this.row_info = res.data;
+
+					}
+				}.bind(this));
+			}
+
+            /*    $.get({
+             url: '../industryInfo/all',
+             }).then(function (res) {
+             this.selectData = res.data;
+
+             }.bind(this)) */
+
+		},
+		data   : function () {
+			return {
+				menu      : '8-2',
+				user      : {
+					id      : '',
+					username: 'admin',
+					avatar  : ''
+				},
+				loading   : false,
+				edit      : false,
+				tab       : 1,
+				row_info  : {
+					content : "",
+					url: ''
+				},
+				selectData: [],
+			};
+		},
+		methods: {
+			logout             : function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText : '取消',
+					type             : 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit           : function () {
+					var data = JSON.parse(JSON.stringify(this.row_info));
+					$.post({
+						url : this.edit ? '../discountInfo/update' : '../discountInfo/save',
+						data: data
+					}).then(function (res) {
+						if (res.success) {
+							if (!this.edit) {
+								this.row_info.adId = res.data;
+							}
+							this.edit = true;
+							this.$message.success(this.edit ? '保存成功' : '创建成功');
+						} else {
+							this.$message.error(this.edit ? '保存失败' : '创建失败');
+						}
+					}.bind(this))
+				
+			},
+			handleAvatarScucess: function (res, file) {
+				this.row_info.realImg = URL.createObjectURL(file.raw);
+				if (res.success) {
+					this.row_info.img = res.data[0];
+				}
+			},
+			beforeAvatarUpload : function (file) {
+				const isLt2M = file.size / 1024 / 1024 < 2;
+				if (!isLt2M) {
+					this.$message.error('上传头像图片大小不能超过 2MB!');
+				}
+				return isLt2M;
+			},
+
+		}
+	})
+</script>
+
+
+</html>

+ 299 - 0
Web/WEB-INF/jsp/newAdmin/driverInfo.jsp

@@ -0,0 +1,299 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="supplierdemandLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="120px">
+		<el-form-item label="编号">
+			<el-input v-model="row_info.driverId" :disabled="disable"></el-input>
+		</el-form-item>
+		<el-form-item label="司机姓名">
+			<el-input v-model="row_info.driver" :disabled="disable"></el-input>
+		</el-form-item>
+		<%--<el-form-item label="出生日期">--%>
+			<%--<el-input v-model="row_info.driverAge"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item  label="出生日期">
+			<el-date-picker v-model="row_info.driverAge" type="date" placeholder="结束日期" :disabled="disable"></el-date-picker>
+		</el-form-item>
+		<el-form-item label="身份证">
+			<el-input v-model="row_info.idCard" :disabled="disable"></el-input>
+		</el-form-item>
+		<%--<el-form-item label="照片">--%>
+			<%--<el-input v-model="row_info.photo"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item label="照片">
+			<el-upload
+					accept="image/jpeg"
+					class="avatar-uploader"
+					action="../assets/uploadFile"
+					:show-file-list="false"
+					:on-success="contactAvatarSuccess">
+				<img v-if="avatar" :src="avatar" class="avatar">
+				<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+			</el-upload>
+			<el-button v-if="avatar" @click="showImg(avatar)">查看</el-button>
+		</el-form-item>
+
+		<el-form-item label="隶属物流公司">
+			<el-select v-model="row_info.coserialNo" placeholder="请选择" :disabled="disable">
+				<el-option
+						v-for="item in logisticsCos"
+						:key="item.numbering"
+						:label="item.coName"
+						:value="item.numbering">
+				</el-option>
+			</el-select>
+		</el-form-item>
+
+		<%--<el-form-item  label="健康证有效日期">--%>
+			<%--<el-date-picker v-model="row_info.EXPDate" type="date" placeholder="结束日期"--%>
+			<%--></el-date-picker>--%>
+		<%--</el-form-item>--%>
+		<el-form-item label="健康证编号">
+			<el-input v-model="row_info.healthCode" :disabled="disable"></el-input>
+		</el-form-item>
+		<el-form-item  label="健康证有效期">
+			<el-date-picker v-model="row_info.expdate" type="date" placeholder="结束日期"></el-date-picker>
+		</el-form-item>
+		<el-form-item label="健康证扫描件">
+			<el-upload
+					accept="image/jpeg"
+					class="avatar-uploader"
+					action="../assets/uploadFile"
+					:show-file-list="false"
+					:on-success="contactAvatarDetailSuccess">
+				<img v-if="avatarDetail" :src="avatarDetail" class="avatar">
+				<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+			</el-upload>
+			<el-button v-if="avatarDetail" @click="showImg(avatarDetail)">查看</el-button>
+		</el-form-item>
+		<%--<el-form-item label="健康证扫描件">--%>
+			<%--<el-input v-model="row_info.HealthCertificate"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="logisticsId">--%>
+			<%--<el-input v-model="row_info.logisticsId"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item label="联系方式">
+			<el-input v-model="row_info.phone" type="number" placeholder="手机号"></el-input>
+		</el-form-item>
+		<%--<el-form-item label="createdUser">--%>
+			<%--<el-input v-model="row_info.createdUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="createdTime">--%>
+			<%--<el-input v-model="row_info.createdTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedUser">--%>
+			<%--<el-input v-model="row_info.modifiedUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedTime">--%>
+			<%--<el-input v-model="row_info.modifiedTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="delFlag">--%>
+			<%--<el-input v-model="row_info.delFlag"></el-input>--%>
+		<%--</el-form-item>--%>
+
+		<el-form-item label="拼音简码">
+			<el-input v-model="row_info.shortName" ></el-input>
+		</el-form-item>
+		<el-form-item label="状态">
+
+			<el-select v-model="row_info.useFlag" placeholder="请选择">
+				<el-option
+						v-for="item in options"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button @click="back">返回</el-button>
+	</el-form-item>
+	</el-form>
+	<el-dialog v-model="imageDialogVisible" size="small">
+		<img width="100%" :src="imgSrc" alt="">
+	</el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+
+            $.get({
+                url: '../logisticsCo/all'
+            }).then(function (res) {
+                this.logisticsCos = res.data;
+            }.bind(this));
+
+			var id = getQueryString('id');
+
+			if (id) {
+				$.get({
+					url: '../driverInfo/getDriverInfo',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+				    console.log(res)
+					if (res.success) {
+				        console.log(res)
+						this.edit = true;
+						if(!res.data.expdate){
+                           res.data.expdate=""
+						}
+                        if(!res.data.driverAge){
+                            res.data.driverAge=""
+                        }
+                        if(!res.data.coserialNo){
+                            res.data.coserialNo=""
+						}
+						this.row_info = res.data;
+                        if (res.data.realphoto) {
+                            this.avatar = res.data.realphoto;
+                        }
+                        if(res.data.realHealthCertificate){
+                            this.avatarDetail = res.data.realHealthCertificate;
+						}
+						this.disable=true;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '4',
+				menu2:'4',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: '',
+                    avatarDetail:'',
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+                avatar:'',
+                avatarDetail:'',
+				row_info : {
+                    realphoto: '',
+                    realHealthCertificate:'',
+                    expdate:'',
+                    driverAge:'',
+                    coserialNo:'',
+                    useFlag:0,
+                },
+
+                options: [{
+                    value: 0,
+                    label: '启用'
+                }, {
+                    value: 1,
+                    label: '停用'
+                }],
+                logisticsCos:[],
+                disable:false,
+                imageDialogVisible: false,
+                imgSrc: ''
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+
+                var reg=11 && /^((13|14|15|17|18|19|16)[0-9]{1}\d{8})$/;
+                if(this.row_info.phone){
+                    if(!reg.test(this.row_info.phone)){
+                        alert("手机格式不正确");
+
+                        return;
+                    }
+                }
+
+				var data = JSON.parse(JSON.stringify(this.row_info));
+
+                delete data.realphoto;
+                delete data.realHealthCertificate;
+                delete data.createdTime;
+                delete data.modifiedTime;
+
+                if (data.expdate) {
+                    data.EXPDate = Date.parse(new Date(data.expdate));
+                }
+
+                if (data.driverAge) {
+                    data.driverAge = Date.parse(new Date(data.driverAge));
+                }
+
+				/*alert(data.EXPDate);*/
+
+				$.post({
+					url: this.edit ? '../driverInfo/update' : '../driverInfo/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+						window.location="driverInfos.html"+ getPageString("?");
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+            back:function () {
+				window.location.href ='../admin/driverInfos' + getPageString("?");
+            },
+            contactAvatarSuccess: function (res, file, fileList) {
+                if (res.success) {
+                    this.row_info.photo = res.data[0];
+                }
+                this.avatar = URL.createObjectURL(file.raw);
+            },
+            contactAvatarDetailSuccess: function (res, file, fileList) {
+
+                if (res.success) {
+                    console.log(res)
+                    this.row_info.healthCertificate = res.data[0];
+                }
+                this.avatarDetail = URL.createObjectURL(file.raw);
+            },
+            showImg: function (img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
+		}
+	})
+</script>
+</html>
+

+ 389 - 0
Web/WEB-INF/jsp/newAdmin/driverInfos.jsp

@@ -0,0 +1,389 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯</title>
+    <style>
+        .db-content-wrapper {
+            display: flex;
+            flex-direction: column;
+            overflow: auto !important;
+        }
+
+        .db-content {
+            flex-grow: 1;
+            padding: 0 25px !important;
+            overflow: hidden;
+        }
+
+        .filters {
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="supplierdemandLeft.jsp"/>
+<template>
+    <div class="filters">
+        <el-button type="primary" @click="create()">创建</el-button>
+        &nbsp;&nbsp;&nbsp;
+        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-input placeholder="关键字" v-model="searchKey"></el-input>
+        </el-col>
+
+        &nbsp;&nbsp;&nbsp;
+        <el-button type="primary" @click="getRows">筛 选</el-button>
+
+
+        &nbsp;&nbsp;&nbsp;
+        <a href="../driverInfo/exportExcel">
+            <el-button type="primary">导 出</el-button>
+        </a>
+
+        &nbsp;&nbsp;&nbsp;
+        <span style="font-size: 14px;color:#bfcbd9">关键字:编号/姓名/联系方式/简码</span>
+
+        <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+    </div>
+
+    <el-table :data="rows"
+              :height="tableMaxHeight"
+              ref="table"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              v-loading="loading">
+        <%--<el-table-column--%>
+        <%--type="index"--%>
+        <%--width="70"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+
+        <el-table-column
+                label="状态"
+                width="80"
+                inline-template
+                align="center">
+            <el-switch
+                    :value="row.useFlag===0"
+                    on-color="#13ce66"
+                    off-color="#ff4949"
+                    on-text="启用"
+                    off-text="停用"
+                    @change="updateUseFlag(row)"
+            >
+            </el-switch>
+        </el-table-column>
+
+        <el-table-column
+                prop="driverId"
+                label="编号"
+                min-width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="driver"
+                label="司机姓名"
+                min-width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="shortName"
+                label="简码"
+                min-width="70"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="phone"
+                label="联系方式"
+                min-width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="logisticsCo.coName"
+                label="隶属物流公司"
+                min-width="140"
+                align="center">
+        </el-table-column>
+
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="driverAge"
+                label="出生日期"
+                width="140"
+                :formatter="timeFormatter"
+                align="center">
+        </el-table-column>
+        <%--	<el-table-column
+                    prop="idCard"
+                    label="身份证"
+                    width="190"
+                    align="center">
+            </el-table-column>--%>
+        <%--	<el-table-column
+                    &lt;%&ndash;prop="photo"&ndash;%&gt;
+                    label="照片"
+                    width="140"
+                    align="center">
+                <template scope="scope">
+                    <img class="singleImg" :src="scope.row.realphoto" @click="imgSrc=scope.row.realphoto,dialogVisible=true">
+                </template>
+            </el-table-column>--%>
+
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="expdate"
+                label="健康证有效日期"
+                width="150"
+                :formatter="timeFormatter"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column
+                prop="healthCode"
+                label="健康证编号"
+                width="140"
+                align="center">
+        </el-table-column>--%>
+        <el-table-column
+        <%--prop="HealthCertificate"--%>
+                label="健康证扫描件"
+                width="140"
+                align="center">
+            <template scope="scope">
+                <img class="singleImg" :src="scope.row.realHealthCertificate"
+                     @click="imgSrc=scope.row.realHealthCertificate,dialogVisible=true">
+            </template>
+        </el-table-column>
+
+        <%--	<el-table-column
+                    prop="useFlag"
+                    label="状态"
+                    width="80"
+                    :formatter="useFlagFormatter"
+                    align="center">
+            </el-table-column>--%>
+
+        <%--<el-table-column--%>
+        <%--prop="createdUser"--%>
+        <%--label="创建人"--%>
+        <%--width="140"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="createdTime"
+                label="创建时间"
+                width="130"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="modifiedUser"--%>
+        <%--label="modifiedUser"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="modifiedTime"--%>
+        <%--label="modifiedTime"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="delFlag"--%>
+        <%--label="delFlag"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                fixed="right"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">编辑</el-button>
+                <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+
+</template>
+<el-dialog v-model="dialogVisible" size="tiny">
+    <img width="100%" :src="imgSrc" alt=""/>
+</el-dialog>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+
+            if (getQueryString('currentPage')) {
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+
+            this.getRows();
+        },
+        computed: {
+            tableMaxHeight() {
+                var height = 600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if (document.getElementById('contentBody')) {
+                    height = document.getElementById('contentBody').offsetHeight - 192
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '4',
+                menu2: '4',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+                imgSrc: '',
+                dialogVisible: false
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                $.get({
+                    url: '../driverInfo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize,
+                        searchKey: this.searchKey
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                window.location = 'driverInfo?id=' + row.id + "&currentPage=" + this.currentPage + "&pageSize=" + this.pageSize;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../driverInfo/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            create: function () {
+                window.location = 'driverInfo';
+            },
+            useFlagFormatter: function (row) {
+
+                var valueStr = '';
+                switch (row.useFlag) {
+                    case 0:
+                        valueStr = '启用';
+                        break;
+                    case 1:
+                        valueStr = '停用';
+                        break
+                }
+
+                return valueStr;
+
+            },
+            updateUseFlag: function (row) {
+
+                if (row.useFlag === 0) {
+                    row.useFlag = 1;
+                } else {
+                    row.useFlag = 0;
+                }
+
+                $.post({
+                    url: '../driverInfo/update',
+                    data: {
+                        id: row.id,
+                        useFlag: row.useFlag
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('保存成功');
+                        //this.getRows();
+                    } else {
+                        this.$message.error('保存失败');
+                    }
+                }.bind(this))
+            },
+            download: function () {
+                window.open(this.imgSrc)
+            },
+            timeFormatter: function (row, column) {
+                return new Date(row[column.property]).toLocaleDateString();
+            }
+        }
+    })
+</script>
+</html>
+

+ 240 - 0
Web/WEB-INF/jsp/newAdmin/errorHandovers.jsp

@@ -0,0 +1,240 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>数据报表</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="dataShowLeft.jsp"/>
+            <template>
+                <div class="filters">
+                    <%--<el-button type="primary" @click="create()">创建</el-button>--%>
+
+                        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+                            <el-input placeholder="关键字" v-model="searchKey"></el-input>
+                        </el-col>
+
+                        &nbsp;&nbsp;&nbsp;
+                        <el-col :md="24" :lg="12" :md="5" :lg="3">
+                            <el-button type="primary" @click="getRows">筛 选</el-button>
+                        </el-col>
+
+                    <div class="num"> 共{{totalNumber}}标签</div>
+                </div>
+
+                <el-table :data="rows"
+                          ref="table"
+                          style="width: 100%"
+                          element-loading-text="拼命加载中"
+                          border
+                          stripe
+                          v-loading="loading">
+                    <%--<el-table-column--%>
+                            <%--type="index"--%>
+                            <%--width="70"--%>
+                            <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <el-table-column
+                            prop="handoverno"
+                            label="交接单号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="freshmilkTransport.status"
+                            label="异常类型"
+                            :formatter="formatTypeFlag"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                     <el-table-column
+                            prop="freshmilkTransport.oddInfo"
+                            label="异常内容"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="driverId"
+                            label="司机编号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="carplate"
+                            label="车牌号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="suppliername"
+                            label="牧场名称"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="numbering"
+                            label="牧场代号"
+                            width="140"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="entertime"
+                            label="到达牧场时间"
+                            width="160"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="createdTime"
+                            label="创建时间"
+                            width="120"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column--%>
+                    <%--prop="modifiedUser"--%>
+                    <%--label="modifiedUser"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <%--<el-table-column--%>
+                    <%--prop="modifiedTime"--%>
+                    <%--label="modifiedTime"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <%--<el-table-column--%>
+                    <%--prop="delFlag"--%>
+                    <%--label="delFlag"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <el-table-column
+                            :context="_self"
+                            inline-template
+                            label="操作"
+                            align="center">
+                        <div>
+                            <el-button size="small" @click="editRow(row)">详情</el-button>
+<!--                             <el-button size="small" @click="mapRow(row)">详情</el-button>
+ -->                            <%--<el-button size="small" @click="editRow(row)">编辑</el-button>--%>
+                            <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+                        </div>
+                    </el-table-column>
+                </el-table>
+                <div class="pagination-wrapper" v-show="!loading">
+                    <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                                   :page-size="pageSize"
+                                   :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+                    </el-pagination>
+                </div>
+            </template>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getRows();
+        },
+        data: function () {
+            return {
+                menu: '49',
+                menu2: '1-1',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+            };
+        },
+        methods: {
+
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                var data = {};
+                
+                this.menu = '49';
+                this.menu2 = '2-3';
+                data.status = '-2';
+
+                data.currentPage = this.currentPage
+                data.pageNumber = this.pageSize
+                if (!this.loading) {
+                    this.loading = true
+
+                    $.get({
+                        url: '../supplierdemandPlan/AllInfoWithTransport',
+                        data: data
+                    }).then(function (res) {
+                        this.loading = false;
+                        console.log(res)
+                        if (res.success) {
+                            this.totalNumber = res.data.page.totalNumber;
+                            this.rows = res.data.pp;
+                        }
+                    }.bind(this))
+                }
+
+
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            entertime: function (time) {
+                return new Date(time.entertime).toLocaleString()
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                var str='handovernosDetailNew?handOverNo=' + row.handoverno
+                window.location =str;
+            },
+            mapRow: function (row) {
+                var str='map?handOverNo=' + row.handoverno
+                if(getQueryString('status')){
+                    str+='&status='+getQueryString('status')
+                }
+                window.location =str;
+            },
+            formatTypeFlag: function (row) {
+
+                switch (row.freshmilkTransport.status) {
+                    case '-9':
+                        return '检测结果异常';
+                    case '-8':
+                        return '铅封码异常';
+                    default:
+                        return '未知';
+                }
+            },
+        }
+    })
+</script>
+</html>
+

+ 120 - 0
Web/WEB-INF/jsp/newAdmin/factoryDetection.jsp

@@ -0,0 +1,120 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="checkName">
+			<el-input v-model="row_info.checkName"></el-input>
+		</el-form-item>
+		<el-form-item label="checkValue">
+			<el-input v-model="row_info.checkValue"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item label="checkResult">
+			<el-input v-model="row_info.checkResult"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../factoryDetection/getFactoryDetection',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../factoryDetection/update' : '../factoryDetection/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 191 - 0
Web/WEB-INF/jsp/newAdmin/factoryDetections.jsp

@@ -0,0 +1,191 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkName"
+				label="checkName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkValue"
+				label="checkValue"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkResult"
+				label="checkResult"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../factoryDetection/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'factoryDetection?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../factoryDetection/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'factoryDetection';
+			}
+		}
+	})
+</script>
+</html>
+

+ 255 - 0
Web/WEB-INF/jsp/newAdmin/factoryInfo.jsp

@@ -0,0 +1,255 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>乳品厂信息</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+            <template>
+                <el-form ref="form" :model="row_info" label-width="120px">
+                    <el-form-item label="序号">
+                        <el-input v-model="row_info.serialNo"></el-input>
+                    </el-form-item>
+                    <el-form-item label="编号">
+                        <el-input v-model="row_info.numbering"></el-input>
+                    </el-form-item>
+                    <%--<el-form-item label="索引号">
+                        <el-input v-model="row_info.indexNo"></el-input>
+                    </el-form-item>--%>
+                    <el-form-item label="乳品厂全称">
+                        <el-input v-model="row_info.factoryFullname"></el-input>
+                    </el-form-item>
+                    <el-form-item label="乳品厂简称">
+                        <el-input v-model="row_info.factoryAbbreviation"></el-input>
+                    </el-form-item>
+                    <el-form-item label="奶线数量">
+                        <el-input v-model="row_info.miktankNo"></el-input>
+                    </el-form-item>
+                    <el-form-item label="奶线编号">
+                        <el-input v-model="row_info.miktankNumber" placeholder="多个信息按 , 隔开"></el-input>
+                    </el-form-item>
+                  <%--  <el-form-item label="奶线容量">
+                        <el-input v-model="row_info.milkCapacity" placeholder="多个信息按 , 隔开"></el-input>
+                    </el-form-item>--%>
+                   <%-- <el-form-item label="分类序号">
+                        <el-input   v-model="row_info.classNo"></el-input>
+                    </el-form-item>
+                    <el-form-item label="地区序号">
+                        <el-input v-model="row_info.areaNo"></el-input>
+                    </el-form-item>--%>
+                    <el-form-item label="联系方式">
+                        <el-input v-model="row_info.phone"></el-input>
+                    </el-form-item>
+                    <el-form-item label="邮编">
+                        <el-input v-model="row_info.zipCode"></el-input>
+                    </el-form-item>
+                    <el-form-item label="地址">
+                        <el-input v-model="row_info.address"></el-input>
+                    </el-form-item>
+                   <%-- <el-form-item label="受益人">
+                        <el-input v-model="row_info.beneficiaries"></el-input>
+                    </el-form-item>
+                    <el-form-item label="开账银行">
+                        <el-input v-model="row_info.bankbilling"></el-input>
+                    </el-form-item>--%>
+                    <%--<el-form-item label="收益人证号">--%>
+                        <%--<el-input v-model="row_info.IncomeNo"></el-input>--%>
+                    <%--</el-form-item>--%>
+                   <%-- <el-form-item label="银行代号">
+                        <el-input v-model="row_info.bankNo"></el-input>
+                    </el-form-item>
+                    <el-form-item label="银行电话">
+                        <el-input v-model="row_info.bankPhone"></el-input>
+                    </el-form-item>
+                    <el-form-item label="状态">
+                        <el-input v-model="row_info.factoryValid"></el-input>
+                    </el-form-item>
+                    <el-form-item label="通用公式序号">
+                        <el-input v-model="row_info.formulaNo"></el-input>
+                    </el-form-item>
+                    <el-form-item label="营养计价等级">
+                        <el-input v-model="row_info.dietgrade"></el-input>
+                    </el-form-item>
+                    <el-form-item label="结算类型">
+                        <el-input v-model="row_info.resulType"></el-input>
+                    </el-form-item>--%>
+                    <%--<el-form-item label="departid">--%>
+                        <%--<el-input v-model="row_info.departid"></el-input>--%>
+                    <%--</el-form-item>--%>
+                    <el-form-item label="经度">
+                        <el-input v-model="row_info.longitude"></el-input>
+                    </el-form-item>
+                    <el-form-item label="纬度">
+                        <el-input v-model="row_info.latitude"></el-input>
+                    </el-form-item>
+                    <el-form-item label="拼音简称">
+                        <el-input v-model="row_info.shortName"></el-input>
+                    </el-form-item>
+
+
+                    <el-form-item label="状态">
+
+                        <el-select v-model="row_info.useFlag" placeholder="请选择">
+                            <el-option
+                                    v-for="item in options"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                            </el-option>
+                        </el-select>
+
+                    </el-form-item>
+                    <el-form-item label="隶属部门">
+                        <el-cascader
+                                v-model="deptCode"
+                                :options="departs"
+                                change-on-select
+                                :show-all-levels="false"
+                                style="width: 70%"
+                        ></el-cascader>
+                    </el-form-item>
+                    <%--<el-form-item label="创建人">--%>
+                        <%--<el-input v-model="row_info.createdUser"></el-input>--%>
+                    <%--</el-form-item>--%>
+                    <%--<el-form-item label="创建时间">--%>
+                        <%--<el-input v-model="row_info.createdTime"></el-input>--%>
+                    </el-form-item>
+                    <el-form-item>
+                        <el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+                        <el-button @click="back">返回</el-button>
+                    </el-form-item>
+                </el-form>
+            </template>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            var id = getQueryString('id');
+            if (id) {
+                $.get({
+                    url: '../factoryInfo/getFactoryInfo',
+                    data: {
+                        id: id
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if (res.success) {
+                        this.edit = true;
+                        this.row_info = res.data;
+                        this.deptCode = res.data.deptCode.split(",");
+                    }
+                }.bind(this));
+            }
+
+            $.get({
+                url: '../userInfo/departInfoTree',
+                data: {
+                    includeParent:1
+                }
+            }).then(function (res) {
+                if (res.success) {
+                    function parse(list) {
+                        if (list) {
+                            list.forEach(function (t) {
+                                t.value = t.extra;
+                                t.label = t.name + "(" + t.id + ")";
+                                if (t.children && t.children.length > 0) {
+                                    parse(t.children)
+                                }
+                            })
+                        }
+                        return list;
+                    }
+
+                    this.departs = parse(res.data.pp);
+                }
+            }.bind(this));
+        },
+        data: function () {
+            return {
+                menu: '7',
+                menu2:'7-1',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                edit: false,
+                tab: 1,
+                row_info: {
+                    useFlag:0,
+                    deptCode: ''
+                },
+                options: [{
+                    value: 0,
+                    label: '启用'
+                }, {
+                    value: 1,
+                    label: '停用'
+                }],
+                deptCode: [],
+                departs: []
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                if (!this.deptCode.length > 0) {
+                    this.$message.error("隶属部门不能为空!");
+                }else{
+                    var data = JSON.parse(JSON.stringify(this.row_info));
+                    delete  data.realMiktankNumber;
+                    delete  data.createdTime;
+                    delete  data.modifiedTime;
+                    data.deptCode = this.deptCode.join();
+
+                    $.post({
+                        url: this.edit ? '../factoryInfo/update' : '../factoryInfo/save',
+                        data: data
+                    }).then(function (res) {
+                        if (res.success) {
+                            if (!this.edit) {
+                                this.row_info.id = res.data;
+                            }
+                            this.edit = true;
+                            this.$message.success(this.edit ? '保存成功' : '创建成功');
+                            window.location="factoryInfos" + getPageString("?");
+                        } else {
+                            this.$message.error(this.edit ? '保存失败' : '创建失败');
+                        }
+                    }.bind(this))
+                }
+
+            },
+            back:function () {
+                history.back()
+            }
+        }
+    })
+</script>
+</html>
+

+ 517 - 0
Web/WEB-INF/jsp/newAdmin/factoryInfos.jsp

@@ -0,0 +1,517 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>乳品厂信息</title>
+    <style>
+        .db-content-wrapper{
+            display: flex;
+            flex-direction: column;
+            overflow: auto!important;
+        }
+        .db-content{
+            flex-grow: 1;
+            padding: 0 25px!important;
+            overflow: hidden;
+        }
+        .filters{
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+            <template>
+                <div class="filters">
+                    <el-button type="primary" @click="create()">创建</el-button>
+                    &nbsp;&nbsp;&nbsp;
+                    <el-col :xs="24" :sm="6" :md="5" :lg="3">
+                        <el-input placeholder="关键字" v-model="searchKey"></el-input>
+                    </el-col>
+
+                    &nbsp;&nbsp;&nbsp;
+
+                        <el-button type="primary" @click="getRows">筛 选</el-button>
+                    &nbsp;&nbsp;&nbsp;
+                        <a href="../factoryInfo/exportExcel">
+                            <el-button type="primary" >导 出</el-button>
+                        </a>
+
+                    &nbsp;&nbsp;&nbsp;
+                    <span style="font-size: 14px;color:#bfcbd9">关键字:序号/简称/地址/简码</span>
+
+                    <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}工厂</div>
+                </div>
+
+                <el-table :data="rows"
+                          ref="table"
+                          style="width: 100%"
+                          element-loading-text="拼命加载中"
+                          border
+                          stripe
+                          :height="tableMaxHeight"
+                          v-loading="loading">
+                    <el-table-column
+                            label="状态"
+                            width="80"
+                            inline-template
+                            align="center">
+                        <el-switch
+                                :value="row.useFlag===0"
+                                on-color="#13ce66"
+                                off-color="#ff4949"
+                                on-text="启用"
+                                off-text="停用"
+                                @change="updateUseFlag(row)"
+                        >
+                        </el-switch>
+                    </el-table-column>
+                    <%--<el-table-column
+                            width="100px"
+                            prop="serialNo"
+                            label="序号"
+                            align="center">
+                    </el-table-column>--%>
+                    <el-table-column
+                            prop="numbering"
+                            label="编号"
+                           min-width="130px"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column
+                            prop="indexNo"
+                            width="100px"
+                            label="索引号"
+                            align="center">
+                    </el-table-column>--%>
+                 <%--   <el-table-column
+                            prop="factoryFullname"
+                            label="乳品厂全称"
+                            min-width="200px"
+                            align="center">
+                    </el-table-column>--%>
+                    <el-table-column
+                            prop="factoryAbbreviation"
+                            label="乳品厂简称"
+                            min-width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="miktankNo"
+                            label="奶线数量"
+                            min-width="140px"
+                            align="center">
+                    </el-table-column>
+                <%--    <el-table-column
+                            prop="miktankNumber"
+                            label="奶线编号"
+                            min-width="200px"
+                            align="center">
+                    </el-table-column>--%>
+                    <%--<el-table-column
+                            prop="milkCapacity"
+                            label="奶线容量"
+                            width="140px"
+                            align="center">
+                    </el-table-column>--%>
+                   <%-- <el-table-column
+                            prop="classNo"
+                            label="分类序号"
+                            width="140px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="areaNo"
+                            label="地区序号"
+                            width="140px"
+                            align="center">
+                    </el-table-column>--%>
+                  <%--  <el-table-column
+                            prop="phone"
+                            label="联系方式"
+                            min-width="140px"
+                            align="center">
+                    </el-table-column>--%>
+                  <%--  <el-table-column
+                            prop="zipCode"
+                            label="邮编"
+                            align="center">
+                    </el-table-column>--%>
+                    <el-table-column
+                            :show-overflow-tooltip="true"
+                            prop="address"
+                            label="地址"
+                            min-width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="shortName"
+                            label="简码"
+                            min-width="100px"
+                            align="center">
+                    </el-table-column>
+                   <%-- <el-table-column
+                            prop="beneficiaries"
+                            label="收益人"
+                            width="120px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="bankbilling"
+                            label="开账银行"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="bankNo"
+                            label="银行代号"
+                            width="200px">
+                    </el-table-column>--%>
+                    <%--<el-table-column--%>
+                    <%--prop="IncomeNo"--%>
+                    <%--label="收益人证号"--%>
+                    <%--width="200px"--%>
+                    <%--align="center">--%>
+                    <%--</el-table-column>
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="bankPhone"
+                            label="银行电话"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="factoryValid"
+                            label="状态"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="formulaNo"
+                            label="通用公式序号"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="dietgrade"
+                            label="营养计价等级"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="resulType"
+                            label="结算类型"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <el-table-column
+                            prop="departid"
+                            label="departid"
+                            width="200px"
+                            align="center">
+                    </el-table-column>
+                    <%--<el-table-column--%>
+                            <%--prop="createdUser"--%>
+                            <%--label="创建人"--%>
+                            <%--width="200px"--%>
+                            <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <%--<el-table-column--%>
+                            <%--prop="createdTime"--%>
+                            <%--label="创建时间"--%>
+                            <%--width="200px"--%>
+                            <%--align="center">--%>
+                    <%--</el-table-column>--%>
+                    <el-table-column
+                            :context="_self"
+                            width="210px"
+                            inline-template
+                            label="操作"
+                            fixed="right"
+                            align="center">
+                        <div>
+                            <%--<button class="printBtn" type="button" onclick="doPrint()">打印</button>--%>
+                            <el-button size="small" @click="doPrint(row)">打印</el-button>
+
+                            <el-button size="small" @click="editRow(row)">编辑</el-button>
+                            <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+                        </div>
+                    </el-table-column>
+                </el-table>
+                <div class="pagination-wrapper" v-show="!loading">
+                    <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                                   :page-size="pageSize"
+                                   :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+                    </el-pagination>
+                </div>
+
+                <div id="qrcode" style="display:none;"></div>
+                <div id="indexbody" style="display:none;">
+
+                    <div v-for="(item,index) in multipleSelection">
+                        <span> 收奶线{{index+1}}</span>
+                        <br>
+                        <img :id="'codeImg'+index" :src="createQrcode(item)" width="150px"
+                             style="margin-left:40px;display:block"/>
+                        <hr>
+                    </div>
+
+                </div>
+            </template>
+            <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+
+            if(getQueryString('currentPage')){
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+
+            this.getRows();
+        },
+        computed:{
+            tableMaxHeight(){
+                var height=600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if(document.getElementById('contentBody')){
+                    height=document.getElementById('contentBody').offsetHeight-192
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '7',
+                menu2:'7-1',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                multipleSelection:[],
+                searchKey: '',
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                $.get({
+                    url: '../factoryInfo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize,
+                        searchKey: this.searchKey
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            doPrint:function (row) {
+                this.multipleSelection = row.realMiktankNumber;
+                if (confirm('确定打印吗?')) {
+
+                    var newstr = $("#indexbody").html();
+                    console.info(newstr);
+                    $("#indexbody").html("");
+                    console.info(newstr);
+                    printWindow = window.open();
+                    printWindow.document.write(newstr);
+                    printWindow.print();
+                    printWindow.close();
+                }
+            },
+
+            createQrcode: function (item) {
+                var qrcode = new QRCode(document.getElementById("qrcode"), {
+                    width: 150,//设置宽高
+                    height: 150
+                });
+
+                var handoverno = item;
+
+                console.log(handoverno);
+
+                qrcode.makeCode(handoverno);
+                $("#qrcode").find("canvas").attr("id", "canvas");
+                var img = document.getElementById("canvas").toDataURL("image/png");
+                $("#qrcode").html("");
+                return img;
+            },
+            doPrint: function (row) {
+
+                this.multipleSelection = row.realMiktankNumber;
+                if (this.multipleSelection.length > 0) {
+                    if (confirm('确定打印吗?')) {
+
+
+                        var t;
+                        clearTimeout(t);
+                        t = setTimeout(function () {
+                            var newstr = $("#indexbody").html();
+                            console.info(newstr);
+                            //$("#indexbody").html("");
+                            //console.info(newstr);
+                            var printWindow = window.open();
+                            printWindow.document.write(newstr);
+                            printWindow.print();
+                            printWindow.close();
+                        }, 500);
+
+                    }
+
+
+                } else {
+                    this.$message.error('没有数据');
+                }
+            },
+
+            editRow: function (row) {
+                window.location = 'factoryInfo?id=' + row.id+"&currentPage="+ this.currentPage + "&pageSize=" + this.pageSize;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../factoryInfo/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            create: function () {
+                window.location = 'factoryInfo';
+            },
+            updateUseFlag: function (row) {
+
+                if (row.useFlag === 0) {
+                    row.useFlag = 1;
+                } else {
+                    row.useFlag = 0;
+                }
+
+                $.post({
+                    url: '../factoryInfo/update',
+                    data: {
+                        id: row.id,
+                        useFlag: row.useFlag
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('保存成功');
+                        //this.getRows();
+                    } else {
+                        this.$message.error('保存失败');
+                    }
+                }.bind(this))
+
+            },
+        }
+    })
+    function finish() {
+
+        console.log(content.length);
+        for (var i = 0; i < content.length; i++) {
+            var qrcode;
+            qrcode = new QRCode(document.getElementById("qrcode"), {
+                width: 150,//设置宽高
+                height: 150
+            });
+
+            var handovernoqr = content[i].handovernoEncrypt;
+            $("#texts").val(handovernoqr);
+            qrcode.makeCode(document.getElementById("texts").value);
+            $("#qrcode").find("canvas").eq(i).attr("id", "canvas" + i);
+
+            var img = document.getElementById("canvas" + i).toDataURL("image/png");
+            var nowDate=new Date();
+            var year=nowDate.getYear().toString();
+            var num=['零','一','二','三','四','五','六','七','八','九']
+            $("#indexbody").append('<div style="width:100px;display:flex;align-items:flex-end;height:100px;box-sizing:border-box;padding:10px;margin-left:20px;display:block margin-top:30px;"><img id="codeImg" src=' + img + ' width="80px"/><div style="margin-left: 140px">'+num[year.slice(year.length-1,year.length)]+'</div><div style="margin-left: 30px">'+nowDate.getMonth()+'</div><div style="margin-left: 30px">'+nowDate.getDay()+'</div></div>' +
+                '<ul style="height:455px;margin: 20px 0 0 10px;box-sizing:border-box;" class="codeList"><li style="list-style: none;display: inline-block;width: 30%;">'+content[i].handoverno+'</li>' +
+                '<li style="list-style: none;display: inline-block;width: 30%;">' + content[i].logstico + '</li><li style="list-style: none;display: inline-block;width: 30%;">' + content[i].entertime + '</li>' +
+                '<li style="list-style: none;display: inline-block;width: 30%;margin-top:15px">' + content[i].factoryname + '</li><li style="list-style: none;display: inline-block;width: 30%;margin-top:15px">' + content[i].milkcount + '</li>' +
+                '<li style="list-style: none;display: inline-block;width: 30%;margin-top:15px">' + content[i].carclaim + '</li></ul>');
+        }
+    }
+    function doPrint(row) {
+
+        $.get({
+            url: '../freshmilkTransport/saveTask',
+        }).then(function (res) {
+            console.log(res)
+            if (res.success) {
+
+            }
+        }.bind(this))
+
+        if (confirm('确定打印吗?')) {
+
+            var newstr = $("#indexbody").html();
+            console.info(newstr);
+            $("#indexbody").html("");
+            console.info(newstr);
+            printWindow = window.open();
+            printWindow.document.write(newstr);
+            printWindow.print();
+            printWindow.close();
+
+        }
+    }
+</script>
+</html>
+

+ 44 - 0
Web/WEB-INF/jsp/newAdmin/factoryLeft.jsp

@@ -0,0 +1,44 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 15293
+  Date: 2017/11/17
+  Time: 10:23
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
+<div class="db-body">
+
+    <template>
+        <aside class="db-menu-wrapper">
+            <c:set var="powerStr" value="${powerStr}"/>
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#4#')}">
+                <a href="${pageContext.request.contextPath}/admin/factoryInfos">
+                    <el-menu-item index="1">工厂信息</el-menu-item>
+                </a>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#43#')}">
+                <el-submenu index="2">
+                    <template slot="title">CIP清洗</template>
+                    <c:if test="${fn:contains(powerStr,'#43#')}">
+                    <a href="${pageContext.request.contextPath}/admin/cartypeCips">
+                        <el-menu-item index="2-1">奶车Cip清洗规则</el-menu-item>
+                    </a>
+                    </c:if>
+                    <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                        <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                    <%--</a>--%>
+                </el-submenu>
+                </c:if>
+
+
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper">
+    <section class="db-content">

+ 132 - 0
Web/WEB-INF/jsp/newAdmin/factorymilkTank.jsp

@@ -0,0 +1,132 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverNo">
+			<el-input v-model="row_info.handoverNo"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryFullname">
+			<el-input v-model="row_info.factoryFullname"></el-input>
+		</el-form-item>
+		<el-form-item label="numbering">
+			<el-input v-model="row_info.numbering"></el-input>
+		</el-form-item>
+		<el-form-item label="milkStartime">
+			<el-input v-model="row_info.milkStartime"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryMilkbarn">
+			<el-input v-model="row_info.factoryMilkbarn"></el-input>
+		</el-form-item>
+		<el-form-item label="milkcarCylinderno">
+			<el-input v-model="row_info.milkcarCylinderno"></el-input>
+		</el-form-item>
+		<el-form-item label="milkCount">
+			<el-input v-model="row_info.milkCount"></el-input>
+		</el-form-item>
+		<el-form-item label="milkEndtime">
+			<el-input v-model="row_info.milkEndtime"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../factorymilkTank/getFactorymilkTank',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../factorymilkTank/update' : '../factorymilkTank/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 211 - 0
Web/WEB-INF/jsp/newAdmin/factorymilkTanks.jsp

@@ -0,0 +1,211 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverNo"
+				label="handoverNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryFullname"
+				label="factoryFullname"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="numbering"
+				label="numbering"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkStartime"
+				label="milkStartime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryMilkbarn"
+				label="factoryMilkbarn"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkcarCylinderno"
+				label="milkcarCylinderno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkCount"
+				label="milkCount"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkEndtime"
+				label="milkEndtime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../factorymilkTank/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'factorymilkTank?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../factorymilkTank/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'factorymilkTank';
+			}
+		}
+	})
+</script>
+</html>
+

+ 150 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkHandover.jsp

@@ -0,0 +1,150 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryFullname">
+			<el-input v-model="row_info.factoryFullname"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryIntime">
+			<el-input v-model="row_info.factoryIntime"></el-input>
+		</el-form-item>
+		<el-form-item label="tanksealCheck">
+			<el-input v-model="row_info.tanksealCheck"></el-input>
+		</el-form-item>
+		<el-form-item label="sampleno">
+			<el-input v-model="row_info.sampleno"></el-input>
+		</el-form-item>
+		<el-form-item label="sampler">
+			<el-input v-model="row_info.sampler"></el-input>
+		</el-form-item>
+		<el-form-item label="checkProject">
+			<el-input v-model="row_info.checkProject"></el-input>
+		</el-form-item>
+		<el-form-item label="inspector">
+			<el-input v-model="row_info.inspector"></el-input>
+		</el-form-item>
+		<el-form-item label="checkResult">
+			<el-input v-model="row_info.checkResult"></el-input>
+		</el-form-item>
+		<el-form-item label="unloadmilkTime">
+			<el-input v-model="row_info.unloadmilkTime"></el-input>
+		</el-form-item>
+		<el-form-item label="approachnum">
+			<el-input v-model="row_info.approachnum"></el-input>
+		</el-form-item>
+		<el-form-item label="weightcha">
+			<el-input v-model="row_info.weightcha"></el-input>
+		</el-form-item>
+		<el-form-item label="rejectInfo">
+			<el-input v-model="row_info.rejectInfo"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryOutime">
+			<el-input v-model="row_info.factoryOutime"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../freshmilkHandover/getFreshmilkHandover',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../freshmilkHandover/update' : '../freshmilkHandover/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 241 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkHandovers.jsp

@@ -0,0 +1,241 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryFullname"
+				label="factoryFullname"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryIntime"
+				label="factoryIntime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="tanksealCheck"
+				label="tanksealCheck"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="sampleno"
+				label="sampleno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="sampler"
+				label="sampler"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkProject"
+				label="checkProject"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="inspector"
+				label="inspector"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="checkResult"
+				label="checkResult"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="unloadmilkTime"
+				label="unloadmilkTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="approachnum"
+				label="approachnum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="weightcha"
+				label="weightcha"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="rejectInfo"
+				label="rejectInfo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryOutime"
+				label="factoryOutime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../freshmilkHandover/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'freshmilkHandover?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../freshmilkHandover/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'freshmilkHandover';
+			}
+		}
+	})
+</script>
+</html>
+

+ 342 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkProduce.jsp

@@ -0,0 +1,342 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+	<style>
+		.el-form{
+			max-width:550px;
+		}
+	</style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="milkLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="120px">
+	<%--	<el-form-item label="牧场名称">
+			<el-input v-model="row_info.suppliername" readonly></el-input>
+		</el-form-item>--%>
+		<el-form-item label="牧场名称">
+			<el-select v-model="suppliername"  filterable clearable  placeholder="请选择" @change="changeMilksavenum">
+				<el-option
+						v-for="item in supplierInfos"
+						:key="item.pastureAbbreviation"
+						:label="item.pastureAbbreviation"
+						:value="item"
+				        >
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+		<el-form-item label="班次">
+			<el-select v-model="row_info.shifts" placeholder="请选择">
+				<el-option
+						v-for="item in shiftsStr"
+						:key="item"
+						:label="item"
+						:value="item">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item label="挤奶时间段">
+			<template>
+				<div class="block">
+					<%--		<span class="demonstration">时间段</span>--%>
+					<el-date-picker
+							v-model="milkstart"
+							type="datetime"
+							placeholder="选择开始日期">
+					</el-date-picker>
+
+					<span class="demonstration">----</span>
+					<el-date-picker
+							v-model="milkend"
+							type="datetime"
+							placeholder="选择结束日期"
+							align="right"
+							:picker-options="pickerOptions1">
+					</el-date-picker>
+				</div>
+			</template>
+		</el-form-item>
+		<%--<el-form-item label="开始挤奶时间">
+			<el-input v-model="row_info.milkstart"></el-input>
+		</el-form-item>--%>
+	<%--	<el-form-item label="生鲜乳贮存罐号">
+			<el-input v-model="milksavenum"></el-input>
+		</el-form-item>--%>
+
+		<el-form-item label="生鲜乳贮存罐号">
+			<el-select v-model="row_info.milksavenum" filterable  placeholder="请选择">
+				<el-option
+						v-for="item in milksavenums"
+						:key="item"
+						:label="item"
+						:value="item">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item label="生鲜乳交奶数量">
+			<el-input v-model="paymilknum" type="number"></el-input>
+		</el-form-item>
+	<%--	<el-form-item label="结束挤奶时间">
+			<el-input v-model="row_info.milkend"></el-input>
+		</el-form-item>--%>
+		<el-form-item label="制冷方式">
+			<el-select v-model="row_info.refrigstyle" placeholder="请选择">
+				<el-option
+						v-for="item in refrigstyleStr"
+						:key="item"
+						:label="item"
+						:value="item">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item label="制冷温度℃">
+			<el-input v-model="row_info.refrigtemp" type="number"></el-input>
+		</el-form-item>
+		<el-form-item label="贮存温度℃">
+			<el-input v-model="row_info.storetemp" type="number"></el-input>
+		</el-form-item>
+		<%--<el-form-item label="delFlag">--%>
+			<%--<el-input v-model="row_info.delFlag"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item label="创建人">
+			<el-input v-model="row_info.createdUser" readonly></el-input>
+		</el-form-item>
+	<%--	<el-form-item label="部门简称">
+			<el-cascader
+					v-model="deptCode"
+					:options="departs"
+					change-on-select
+					:show-all-levels="false"
+					style="width: 70%"
+			></el-cascader>
+		</el-form-item>--%>
+		<%--<el-form-item label="创建时间">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>--%>
+		<%--<el-form-item label="modifiedUser">--%>
+			<%--<el-input v-model="row_info.modifiedUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedTime">--%>
+			<%--<el-input v-model="row_info.modifiedTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button @click="back">返回</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+
+
+         /*   $.get({
+                url: '../supplierInfo/getOne',
+                data: {
+                    numbering: 100021
+                }
+            }).then(function (res) {
+                if (res.success) {
+                    /!*this.milksavenums = res.data.miktankNo;*!/
+                    this.milksavenums = res.data.miktankNumber.split(",");
+                    this.suppliername=res.data.pastureAbbreviation;
+                }
+            }.bind(this));*/
+
+
+			if (id) {
+				$.get({
+					url: '../freshmilkProduce/getFreshmilkProduce',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						res.data.createdUser='${sessionScope.userNamea}';
+						if(!res.data.suppliername){
+						    res.data.suppliername = this.suppliername;
+						}
+                        if(!res.data.refrigstyle){
+                            res.data.refrigstyle=''
+                        }
+						this.row_info = res.data;
+                        this.milkstart=new Date(res.data.milkstart);
+                        this.milkend=new Date(res.data.milkend);
+                        this.paymilknum = res.data.paymilknum;
+                        //this.milksavenums=res.data.milksavenum;
+							this.suppliername=res.data.suppliername;
+                        this.deptCode = res.data.deptCode.split(",");
+					}
+				}.bind(this));
+			}
+          /*  $.get({
+                url: '../userInfo/departInfoTree',
+                data: {}
+            }).then(function (res) {
+                if (res.success) {
+                    function parse(list) {
+                        if (list) {
+                            list.forEach(function (t) {
+                                t.value = t.extra;
+                                t.label = t.name + "(" + t.id + ")";
+                                if (t.children && t.children.length > 0) {
+                                    parse(t.children)
+                                }
+                            })
+                        }
+                        return list;
+                    }
+
+                    this.departs = parse(res.data.pp);
+                }
+            }.bind(this));*/
+
+            $.get({
+                url: '../supplierInfo/allbyBack'
+            }).then(function (res) {
+                this.supplierInfos = res.data;
+                console.log(res)
+
+            }.bind(this));
+
+
+		},
+		data: function () {
+			return {
+                menu: '2',
+                menu2: '13-2',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+                row_info : {
+					createdUser:'${sessionScope.userNamea}',
+                 /*   suppliername: '${supplier.pastureAbbreviation}',*/
+                    suppliername:'',
+                    milksavenum:'',
+                    refrigstyle:'直冷',
+                    shifts:'早班',
+                    deptCode:''
+				},
+				tab: 1,
+                pickerOptions1: {
+                    shortcuts: [{
+                        text: '今天',
+                        onClick:function(picker) {
+                            picker.$emit('pick', new Date());
+                        }
+                    }, {
+                        text: '昨天',
+                        onClick:function(picker) {
+                            const date = new Date();
+                            date.setTime(date.getTime() - 3600 * 1000 * 24);
+                            picker.$emit('pick', date);
+                        }
+                    }, {
+                        text: '一周前',
+                        onClick:function(picker) {
+                            const date = new Date();
+                            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+                            picker.$emit('pick', date);
+                        }
+                    }]
+                },
+                milkstart:'',
+                milkend:'',
+                shiftsStr:['早班','中班','晚班'],
+                refrigstyleStr:['直冷','冷排'],
+                paymilknum:'',
+				suppp:'',
+                suppliername:'',
+                milksavenums:[],
+             /*   milksavenums:'${supplier.miktankNumber}'.split(","),*/
+                supplierInfos:[],
+                deptCode: [],
+                departs: [],
+			};
+		},
+		methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                    this.row_info.paymilknum = this.paymilknum;
+                    var data = JSON.parse(JSON.stringify(this.row_info));
+                    delete data.modifiedTime;
+                    delete data.createdTime;
+                    data.milkstart = Date.parse(this.milkstart);
+                    data.milkend = Date.parse(this.milkend);
+
+                    if(!this.edit){
+
+                        if (!data.deptCode[0] === '1' && data.deptCode[1] === '0') {
+                            data.deptCode = "10," + this.deptCode.join();
+                        } else {
+                            data.deptCode = this.deptCode.join();
+                        }
+                    }
+
+
+                    $.post({
+                        url: this.edit ? '../freshmilkProduce/update' : '../freshmilkProduce/save',
+                        data: data
+                    }).then(function (res) {
+                        if (res.success) {
+                            if (!this.edit) {
+                                this.row_info.id = res.data;
+                            }
+                            this.edit = true;
+                            this.$message.success(this.edit ? '保存成功' : '创建成功');
+                            window.location = "freshmilkProduces.html";
+                        } else {
+                            this.$message.error(this.edit ? '保存失败' : '创建失败');
+                        }
+                    }.bind(this))
+
+            },
+            back: function () {
+                window.location.href = '../admin/freshmilkProduces';
+            },
+            changeMilksavenum: function (row) {
+                this.row_info.suppliername=row.pastureAbbreviation;
+                this.milksavenums = row.miktankNumber.split(",");
+            }
+        }
+	})
+</script>
+</html>
+

+ 313 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkProduces.jsp

@@ -0,0 +1,313 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯</title>
+    <style>
+        .db-content-wrapper {
+            display: flex;
+            flex-direction: column;
+            overflow: auto !important;
+        }
+
+        .db-content {
+            flex-grow: 1;
+            padding: 0 25px !important;
+            overflow: hidden;
+        }
+
+        .filters {
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="milkLeft.jsp"/>
+<template>
+    <div class="filters">
+        <el-button type="primary" @click="create()">创建</el-button>
+        &nbsp;&nbsp;&nbsp;
+            <el-input placeholder="关键字" v-model="searchKey" style="width: 150px;"></el-input>
+        &nbsp;&nbsp;&nbsp;
+        <el-select v-model="shifts" clearable placeholder="班次" style="width: 100px;">
+            <el-option
+                    v-for="item in shiftsStr"
+                    :key="item"
+                    :label="item"
+                    :value="item">
+            </el-option>
+        </el-select>
+
+        &nbsp;&nbsp;&nbsp;
+        <el-date-picker v-model="startTime" type="date" placeholder="请选择开始时间" style="width: 150px;">
+        </el-date-picker>
+        &nbsp;&nbsp;&nbsp;
+        <el-date-picker v-model="endTime" type="date" placeholder="请选择截至时间" style="width: 150px;">
+        </el-date-picker>
+        &nbsp;&nbsp;&nbsp;
+
+            <el-button type="primary" @click="getRows">筛 选</el-button>
+        &nbsp;&nbsp;&nbsp;
+        <span style="font-size: 14px;color:#bfcbd9 ;white-space:nowrap;">关键字:牧场/班次/罐号</span>
+        <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+    </div>
+
+    <el-table :data="rows"
+              ref="table"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              :height="tableMaxHeight"
+              v-loading="loading">
+        <%--<el-table-column--%>
+        <%--type="index"--%>
+        <%--width="70"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="suppliername"
+                label="牧场名称"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="shifts"
+                label="班次"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                :formatter="formatDate"
+                prop="milkstart"
+                label="开始挤奶时间"
+                width="160"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="milksavenum"
+                label="生鲜乳贮存罐号"
+                width="180"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="paymilknum"
+                label="生鲜乳交奶数量"
+                width="180"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                :formatter="formatDate"
+                prop="milkend"
+                label="结束挤奶时间"
+                width="160"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="refrigstyle"
+                label="制冷方式"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="refrigtemp"
+                label="制冷温度"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="storetemp"
+                label="贮存温度"
+                width="140"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="delFlag"--%>
+        <%--label="delFlag"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="createdUser"
+                label="创建人"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                :formatter="formatDate"
+                prop="createdTime"
+                label="创建时间"
+                width="160"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="modifiedUser"--%>
+        <%--label="modifiedUser"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="modifiedTime"--%>
+        <%--label="modifiedTime"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                fixed="right"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">编辑</el-button>
+                <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getRows();
+        },
+        computed: {
+            tableMaxHeight() {
+                var height = 600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if (document.getElementById('contentBody')) {
+                    height = document.getElementById('contentBody').offsetHeight - 192
+                }
+                return height
+            }
+        },
+
+        data: function () {
+            return {
+                menu: '2',
+                menu2: '13-2',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+                startTime: '',
+                endTime: '',
+                shiftsStr: ['早班', '中班', '晚班'],
+                shifts: ''
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize,
+                    searchKey: this.searchKey,
+                    shifts: this.shifts,
+                };
+
+                if (this.startTime) {
+                    data.searchBeginTime = Date.parse(new Date(this.startTime));
+                }
+                if (this.endTime) {
+                    data.searchEndTime = Date.parse(new Date(this.endTime));
+                }
+
+                $.get({
+                    url: '../freshmilkProduce/page',
+                    data: data
+                }).then(function (res) {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                window.location = 'freshmilkProduce?id=' + row.id;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../freshmilkProduce/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            create: function () {
+                window.location = 'freshmilkProduce';
+            },
+            formatDate: function (row, column) {
+                if (row[column.property]) {
+                    return moment(row[column.property]).format('YYYY年MM月DD日  HH:mm:ss');
+                } else {
+                    return "";
+                }
+            },
+        }
+    })
+</script>
+</html>
+

+ 137 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkProducesIndex.jsp

@@ -0,0 +1,137 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+
+<jsp:include page="milkLeft.jsp"/>
+<template>
+	<div class="index">
+		<img class="logo_he" src="${pageContext.request.contextPath}/images/logo2.png" alt="">
+		<div class="closed-signboard">
+			<div class="sign">
+				奶源追溯
+			</div>
+			<div class="strings"></div>
+			<div class="pin pin1"></div>
+			<div class="pin pin2"></div>
+			<div class="pin pin3"></div>
+		</div>
+
+
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			//this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '2',
+              //  menu2: '13-2',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: [],
+                searchKey: '',
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../freshmilkProduce/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize,
+                        searchKey: this.searchKey
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'freshmilkProduce?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../freshmilkProduce/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'freshmilkProduce';
+			},
+            formatDate: function (row, column) {
+                if (row[column.property]) {
+                    return moment(row[column.property]).format('YYYY年MM月DD日  HH:mm:ss');
+                } else {
+                    return "";
+                }
+            },
+		}
+	})
+</script>
+</html>
+

+ 174 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkTransport.jsp

@@ -0,0 +1,174 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="driverId">
+			<el-input v-model="row_info.driverId"></el-input>
+		</el-form-item>
+		<el-form-item label="carno">
+			<el-input v-model="row_info.carno"></el-input>
+		</el-form-item>
+		<el-form-item label="licenseplate">
+			<el-input v-model="row_info.licenseplate"></el-input>
+		</el-form-item>
+		<el-form-item label="taste">
+			<el-input v-model="row_info.taste"></el-input>
+		</el-form-item>
+		<el-form-item label="tranmilkCount">
+			<el-input v-model="row_info.tranmilkCount"></el-input>
+		</el-form-item>
+		<el-form-item label="supplierIntime">
+			<el-input v-model="row_info.supplierIntime"></el-input>
+		</el-form-item>
+		<el-form-item label="samptest">
+			<el-input v-model="row_info.samptest"></el-input>
+		</el-form-item>
+		<el-form-item label="supplierOuttime">
+			<el-input v-model="row_info.supplierOuttime"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryIntime">
+			<el-input v-model="row_info.factoryIntime"></el-input>
+		</el-form-item>
+		<el-form-item label="judgeInfo">
+			<el-input v-model="row_info.judgeInfo"></el-input>
+		</el-form-item>
+		<el-form-item label="reportest">
+			<el-input v-model="row_info.reportest"></el-input>
+		</el-form-item>
+		<el-form-item label="sampleno">
+			<el-input v-model="row_info.sampleno"></el-input>
+		</el-form-item>
+		<el-form-item label="demonum">
+			<el-input v-model="row_info.demonum"></el-input>
+		</el-form-item>
+		<el-form-item label="collectmilkCount">
+			<el-input v-model="row_info.collectmilkCount"></el-input>
+		</el-form-item>
+		<el-form-item label="weightcha">
+			<el-input v-model="row_info.weightcha"></el-input>
+		</el-form-item>
+		<el-form-item label="pastureManager">
+			<el-input v-model="row_info.pastureManager"></el-input>
+		</el-form-item>
+		<el-form-item label="factoryOutime">
+			<el-input v-model="row_info.factoryOutime"></el-input>
+		</el-form-item>
+		<el-form-item label="oddInfo">
+			<el-input v-model="row_info.oddInfo"></el-input>
+		</el-form-item>
+		<el-form-item label="oddPhoto">
+			<el-input v-model="row_info.oddPhoto"></el-input>
+		</el-form-item>
+		<el-form-item label="status">
+			<el-input v-model="row_info.status"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item label="carplate">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../freshmilkTransport/getFreshmilkTransport',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../freshmilkTransport/update' : '../freshmilkTransport/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 281 - 0
Web/WEB-INF/jsp/newAdmin/freshmilkTransports.jsp

@@ -0,0 +1,281 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="driverId"
+				label="driverId"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carno"
+				label="carno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="licenseplate"
+				label="licenseplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="taste"
+				label="taste"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="tranmilkCount"
+				label="tranmilkCount"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="supplierIntime"
+				label="supplierIntime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="samptest"
+				label="samptest"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="supplierOuttime"
+				label="supplierOuttime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryIntime"
+				label="factoryIntime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="judgeInfo"
+				label="judgeInfo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="reportest"
+				label="reportest"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="sampleno"
+				label="sampleno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="demonum"
+				label="demonum"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="collectmilkCount"
+				label="collectmilkCount"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="weightcha"
+				label="weightcha"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="pastureManager"
+				label="pastureManager"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryOutime"
+				label="factoryOutime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="oddInfo"
+				label="oddInfo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="oddPhoto"
+				label="oddPhoto"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="status"
+				label="status"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../logisticsCo/all',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'freshmilkTransport?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../freshmilkTransport/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'freshmilkTransport';
+			}
+		}
+	})
+</script>
+</html>
+

+ 174 - 0
Web/WEB-INF/jsp/newAdmin/giveInfo.jsp

@@ -0,0 +1,174 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+    <style>
+        .avatar-uploader .el-upload {
+            border: 1px dashed #d9d9d9;
+            border-radius: 6px;
+            cursor: pointer;
+            position: relative;
+            overflow: hidden;
+        }
+
+        .avatar-uploader .el-upload:hover {
+            border-color: #20a0ff;
+        }
+
+        .avatar-uploader-icon {
+            font-size: 28px;
+            color: #8c939d;
+            width: 178px;
+            height: 178px;
+            line-height: 178px;
+            text-align: center;
+        }
+
+        .avatar {
+            width: 178px;
+            height: 178px;
+            display: block;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+    <el-form ref="form" :model="row_info"
+             label-width="160px">
+
+<!--         <el-form-item label='封面'>
+            <el-upload class="avatar-uploader" action="../assets/uploadFile"
+                       :show-file-list="false" :on-success="handleAvatarScucess"
+                       :before-upload="beforeAvatarUpload"><img
+                    v-if="row_info.realImg" :src="row_info.realImg" class="avatar">
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>
+            (尺寸1920*680px,分辨率72,格式jpg,图片质量70)
+        </el-form-item> -->
+        
+         <el-form-item label="用户">
+                    <el-select v-model="user.id" filterable placeholder="请选择">
+                        <el-option
+                                v-for="item in users"
+                                :key="item.id"
+                                :label="item.phone"
+                                :value="item.id">
+                        </el-option>
+                    </el-select>
+         </el-form-item>
+         
+          <el-form-item
+                label="数值">
+            <el-input v-model="user.jifen"></el-input>
+        </el-form-item>
+
+
+        <el-form-item>
+            <el-button
+                    type="primary" @click="onSubmit">{{edit?'立即创建':'保存'}}
+            </el-button>
+            <el-button>取消</el-button>
+        </el-form-item>
+
+    </el-form>
+
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r   = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el     : '#app',
+		created: function () {
+			var id = getQueryString('id');
+			
+			 $.get({
+	                url: '../userInfo/all'
+	            }).then(function (res) {
+	                this.users = res.data;
+
+	            }.bind(this));
+
+            /*    $.get({
+             url: '../industryInfo/all',
+             }).then(function (res) {
+             this.selectData = res.data;
+
+             }.bind(this)) */
+
+		},
+		data   : function () {
+			return {
+				menu      : '8-2',
+				user      : {
+					id      : '',
+					jifen :''
+				},
+				loading   : false,
+				edit      : false,
+				tab       : 1,
+				row_info  : {
+					content : "",
+					url: ''
+				},
+				selectData: [],
+				users: [],
+			};
+		},
+		methods: {
+			logout             : function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText : '取消',
+					type             : 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit           : function () {
+					var data = JSON.parse(JSON.stringify(this.user));
+					$.post({
+						url : this.edit ? '../userInfo/update' : '../userInfo/update',
+						data: data
+					}).then(function (res) {
+						if (res.success) {
+							if (!this.edit) {
+								this.row_info.adId = res.data;
+							}
+							this.edit = true;
+							this.$message.success(this.edit ? '保存成功' : '创建成功');
+						} else {
+							this.$message.error(this.edit ? '保存失败' : '创建失败');
+						}
+					}.bind(this))
+				
+			},
+			handleAvatarScucess: function (res, file) {
+				this.row_info.realImg = URL.createObjectURL(file.raw);
+				if (res.success) {
+					this.row_info.img = res.data[0];
+				}
+			},
+			beforeAvatarUpload : function (file) {
+				const isLt2M = file.size / 1024 / 1024 < 2;
+				if (!isLt2M) {
+					this.$message.error('上传头像图片大小不能超过 2MB!');
+				}
+				return isLt2M;
+			},
+
+		}
+	})
+</script>
+
+
+</html>

+ 212 - 0
Web/WEB-INF/jsp/newAdmin/handoverDetails.jsp

@@ -0,0 +1,212 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				width="140px"
+				prop="handoverno"
+				label="交接单号"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="suppliername"
+				label="牧场(站)"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="numbering"
+				label="牧场(站)代码"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="entertime"
+				label="到达牧场时间"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="factoryname"
+				label="收货单位"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="milkcount"
+				label="计划调运数(公斤)"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="logstico"
+				label="物流单位"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="driverId"
+				label="司机"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carplate"
+				label="车牌号"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carclaim"
+				label="装载要求"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="创建人"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="创建时间"
+				align="center">
+		</el-table-column>
+		<%--<el-table-column--%>
+				<%--prop="delFlag"--%>
+				<%--label="delFlag"--%>
+				<%--align="center">--%>
+		<%--</el-table-column>--%>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../supplierdemandPlan/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'supplierdemandPlan?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../supplierdemandPlan/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'supplierdemandPlan';
+			}
+		}
+	})
+</script>
+</html>
+

+ 1473 - 0
Web/WEB-INF/jsp/newAdmin/handovernosDetailNew.jsp

@@ -0,0 +1,1473 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <%@ taglib uri="el-common" prefix="el" %>
+    <title>交接单详情</title>
+    <meta name="viewport"
+          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+    <style type="text/css">
+        html, body {
+            width: 100%;
+            height: 100%;
+        }
+
+        * {
+            margin: 0px;
+            padding: 0px;
+        }
+
+        body, button, input, select, textarea {
+            font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
+        }
+
+        p {
+            width: 603px;
+            padding-top: 3px;
+            overflow: hidden;
+        }
+
+        .btn {
+            width: 142px;
+        }
+
+        #container {
+            min-width: 600px;
+            min-height: 767px;
+            width: 100%;
+            height: 100%;
+        }
+    </style>
+    <style>
+        .el-dialog {
+            width: 300px;
+        }
+
+        .el-dialog__footer {
+            text-align: center;
+        }
+
+        #qrcode canvas {
+            margin: auto;
+            display: block;
+        }
+
+        .clickContent {
+            margin-bottom: 10px;
+        }
+
+        .clickContent div {
+            /*text-decoration:underline;*/
+            cursor: pointer;
+            font-size: 14px;
+            color: #000;
+            flex-grow: 1;
+            line-height: 20px;
+        }
+
+        .clickContent div:not(:first-child) {
+            margin-top: 10px;
+        }
+
+        .clickContent div:hover {
+            text-decoration: underline;
+            color: #2694C9;
+        }
+    </style>
+    <script type="text/javascript"
+            src="http://api.map.baidu.com/api?v=2.0&ak=UuWIpT4YihyTDf5kuzWMR8b8iybqOe8Q"></script>
+
+    <link rel="stylesheet" href="${pageContext.request.contextPath}/css/details.css">
+    <script src="${pageContext.request.contextPath}/js/jquery.nicescroll.min.js"></script>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="db-body">
+
+    <template v-if="type">
+        <aside class="db-menu-wrapper">
+            <c:set var="powerStr" value="${powerStr}"/>
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+                <c:if test="${fn:contains(powerStr,'#47#')}">
+                    <el-submenu index="1">
+                        <template slot="title">追踪追溯查询</template>
+                        <c:if test="${fn:contains(powerStr,'#48#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernosShow?status=100">
+                                <el-menu-item index="1-1">交接单批号追溯查询</el-menu-item>
+                            </a>
+                        </c:if>
+                        <c:if test="${fn:contains(powerStr,'#53#')}">
+                            <a href="${pageContext.request.contextPath}/admin/collectionMilkresults">
+                                <el-menu-item index="1-2">生鲜乳生产流向查询</el-menu-item>
+                            </a>
+                        </c:if>
+                    </el-submenu>
+                </c:if>
+                <c:if test="${fn:contains(powerStr,'#49#')}">
+                    <el-submenu index="2">
+                        <template slot="title">监管报表</template>
+                        <c:if test="${fn:contains(powerStr,'#50#')}">
+                            <a href="${pageContext.request.contextPath}/admin/passPercent">
+                                <el-menu-item index="2-1">奶源合格率对比趋势</el-menu-item>
+                            </a>
+                        </c:if>
+                            <%--<c:if test="${fn:contains(powerStr,'#51#')}">
+                                <a href="${pageContext.request.contextPath}/admin/milkDataShow?menuIndex=2-2">
+                                    <el-menu-item index="2-2">牛群数量变化趋势</el-menu-item>
+                                </a>
+                            </c:if>--%>
+                        <c:if test="${fn:contains(powerStr,'#52#')}">
+                            <a href="${pageContext.request.contextPath}/admin/allHandovernosShow?status=101">
+                                <el-menu-item index="2-3">异常信息记录</el-menu-item>
+                            </a>
+                        </c:if>
+                    </el-submenu>
+                </c:if>
+            </el-menu>
+        </aside>
+    </template>
+
+    <template v-else>
+        <aside class="db-menu-wrapper">
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos">
+                    <el-menu-item index="0-1">全部交接单</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-1">
+                    <el-menu-item index="-1">待调度</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=1">
+                    <el-menu-item index="1">运输中</el-menu-item>
+                </a>
+                <el-submenu index="2">
+                    <template slot="title">牧场</template>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=2">
+                        <el-menu-item index="2-2">进入牧场</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=3">
+                        <el-menu-item index="2-3">进场称重</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=4">
+                        <el-menu-item index="2-4">检测完成</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=5">
+                        <el-menu-item index="2-5">装奶完成</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=6">
+                        <el-menu-item index="2-6">出场称重</el-menu-item>
+                    </a>
+                    <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                    <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                    <%--</a>--%>
+                </el-submenu>
+
+
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=7">
+                    <el-menu-item index="7">返程中</el-menu-item>
+                </a>
+                <el-submenu index="3">
+                    <template slot="title">工厂</template>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">
+                        <el-menu-item index="3-9">进入工厂</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=10">
+                        <el-menu-item index="3-10">工厂取样</el-menu-item>
+                    </a>
+
+                    <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">--%>
+                    <%--<el-menu-item index="3-9">采样&工厂接奶</el-menu-item>--%>
+                    <%--</a>--%>
+
+                </el-submenu>
+
+                <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">--%>
+                <%--<el-menu-item index="10">加工厂接奶</el-menu-item>--%>
+                <%--</a>--%>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">
+                    <el-menu-item index="11">交接单完成</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-2">
+                    <el-menu-item index="-2">异常单</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-3">
+                    <el-menu-item index="-3">作废</el-menu-item>
+                </a>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper">
+
+        <template>
+
+            <div class="top">
+                <el-button type="primary" @click="back">返 回</el-button>
+                <el-button type="primary" @click="inFactory" v-if="allInfo.status==7">进入工厂</el-button>
+                <c:if test="${sessionScope.superUserName=='root'}">
+                    <el-button type="danger" @click="doCancel" v-if="-1<=allInfo.status&&allInfo.status<2">作废
+                    </el-button>
+                </c:if>
+                <c:if test="${sessionScope.superUserName=='root'}">
+                    <el-button type="danger" @click="editStatus" v-if="2<=allInfo.status&&allInfo.status<9">更改状态
+                    </el-button>
+                </c:if>
+            </div>
+
+            <div class="list-item">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">调度</div>
+                </div>
+                <div class="content" style="overflow: hidden">
+                    <div class="content-content">
+                        <div class="content-item">
+                            <div class="title">交接单号</div>
+                            <div class="val">{{allInfo.handoverno}}</div>
+                        </div>
+                        <%--<div class="content-item">--%>
+                        <%--<div class="title">牧场代码</div>--%>
+                        <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                        <%--</div>--%>
+                        <div class="content-item">
+                            <div class="title">牧场</div>
+                            <div class="val">{{allInfo.suppliername}}</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">收货单位</div>
+                            <div class="val">{{allInfo.factoryname}}</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">计划调运数</div>
+                            <div class="val">{{allInfo.milkcount}}</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">装载要求</div>
+                            <div class="val">{{allInfo.carclaim}}</div>
+                        </div>
+                    </div>
+                    <div class="content-content">
+                        <div class="content-item">
+                            <div class="title">物流单位</div>
+                            <div class="val">{{allInfo.logstico}}</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">车牌号码</div>
+                            <div class="val">{{allInfo.carplate}}</div>
+                        </div>
+                        <%--<div class="content-item">--%>
+                        <%--<div class="title">车辆编号</div>--%>
+                        <%--<div class="val">{{allInfo.carclaim}}</div>--%>
+                        <%--</div>--%>
+                        <div class="content-item" v-if="allInfo.driverInfo">
+                            <div class="title">司机</div>
+                            <div class="val">{{allInfo.driverInfo.driver}}</div>
+                        </div>
+                        <div class="content-item" v-if="allInfo.driverInfo">
+                            <div class="title">联系方式</div>
+                            <div class="val">{{allInfo.driverInfo.phone}}</div>
+                        </div>
+                    </div>
+
+                </div>
+                <div class="line" v-if="allInfo.freshmilkTransport.supplierIntime||clean"></div>
+
+            </div>
+
+            <div class="list-item" v-if="headHistory.length>0">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">车头记录</div>
+                </div>
+
+
+                <div class="content scroll-box" v-if="headHistory.length>0">
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            更换历史
+                        </div>
+                        <div class="content-item">
+                            <div class="title">挂车号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">原车头号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">换车头号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">操作人</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">操作时间</div>
+                        </div>
+
+                    </div>
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in headHistory">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.carplate}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.originalCarno}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.targetCarno}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.createUser}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.createTime}}</div>
+                            </div>
+
+                        </div>
+                    </div>
+
+
+                </div>
+
+                <div class="line" v-if="allInfo.freshmilkTransport.supplierIntime"></div>
+
+            </div>
+
+            <div class="list-item" v-if="clean.carCip||clean.carCipHistory.length>0">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">CIP清洗</div>
+                </div>
+                <%--<div class="content" style="overflow: hidden">--%>
+                <%--<div class="content-content">--%>
+                <%--<div class="content-item">--%>
+                <%--<div class="title">清洗方式</div>--%>
+                <%--<div class="val">{{clean.cleanType}}</div>--%>
+                <%--</div>--%>
+                <%--&lt;%&ndash;<div class="content-item">&ndash;%&gt;--%>
+                <%--&lt;%&ndash;<div class="title">牧场代码</div>&ndash;%&gt;--%>
+                <%--&lt;%&ndash;<div class="val">{{allInfo.handoverno}}</div>&ndash;%&gt;--%>
+                <%--&lt;%&ndash;</div>&ndash;%&gt;--%>
+                <%--<div class="content-item">--%>
+                <%--<div class="title">清洗时间</div>--%>
+                <%--<div class="val">{{clean.cipEndtime}}</div>--%>
+                <%--</div>--%>
+                <%--</div>--%>
+
+
+                <%--</div>--%>
+
+                <div class="content scroll-box" v-if="clean.carCipHistory.length>0">
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            清洗历史
+                        </div>
+                        <div class="content-item">
+                            <div class="title">挂车号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">清洗方式</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">清洗时间</div>
+                        </div>
+
+                    </div>
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in clean.carCipHistory">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.carplate}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.cleanType}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.createdTime}}</div>
+                            </div>
+
+                        </div>
+                    </div>
+
+
+                </div>
+                <div v-if="clean.carCip">
+                    <div class="content scroll-box" v-if="clean.carCip.carCipSeals.length>0">
+                        <div class="content-content1"
+                             style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                            <div class="superTitle">
+                                清洗数据
+                            </div>
+                            <div class="content-item">
+                                <div class="title">运输车辆</div>
+                            </div>
+                            <%--<div class="content-item">--%>
+                            <%--<div class="title">消毒</div>--%>
+                            <%--</div>--%>
+                            <div class="content-item">
+                                <div class="title">检查结果</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title">清洗消毒方式</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title">作业时间</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title">操作人</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title">检查人</div>
+                            </div>
+                            <div class="content-item" style="align-items: flex-start"
+                                 :style="{height: getRealHeight(clean.carCip.carCipSeals,'cansealupCipNum')+'px'}">
+                                <div class="title">清洗仓口铅封号</div>
+                            </div>
+                            <div class="content-item" style="align-items: flex-start"
+                                 :style="{height: getRealHeight(clean.carCip.carCipSeals,'cipSealnum')+'px'}">
+                                <div class="title">清洗槽口铅封号</div>
+                            </div>
+
+                        </div>
+                        <div class="content-scroll">
+                            <div class="content-content2" v-for="(item,index) in clean.carCip.carCipSeals">
+                                <div class="content-item">
+                                    <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{item.carplate}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{ item.cipResultDetail?item.cipResultDetail.cipResult:""}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{clean.carCip.cleanType}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{item.date}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{item.cipResultDetail?item.cipResultDetail.operator:""}}</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="val">{{item.cipResultDetail?item.cipResultDetail.checker:""}}</div>
+                                </div>
+                                <div class="clickContent"
+                                     :style="{height: getRealHeight(clean.carCip.carCipSeals,'cansealupCipNum')+'px'}">
+                                    <div class="val"
+                                         @click="showQRCode(getRetrunList(item.cansealupCipNumQr)[todoIndex],todo)"
+                                         v-for="(todo,todoIndex) in getRetrunList(item.cansealupCipNum)">
+                                        {{todo}}-{{getRetrunList(item.cansealupCipNumQr)[todoIndex]}}
+                                    </div>
+                                </div>
+                                <div class="clickContent"
+                                     :style="{height: getRealHeight(clean.carCip.carCipSeals,'cipSealnum')+'px'}">
+                                    <div class="val"
+                                         @click="showQRCode(getRetrunList(item.cipSealnumQr)[todoIndex],todo)"
+                                         v-for="(todo,todoIndex) in getRetrunList(item.cipSealnum)">
+                                        {{todo}}-{{getRetrunList(item.cipSealnumQr)[todoIndex]}}
+                                    </div>
+
+                                </div>
+
+                            </div>
+                        </div>
+
+
+                    </div>
+                </div>
+
+                <div class="line" v-if="allInfo.freshmilkTransport.supplierIntime"></div>
+
+            </div>
+            <div class="list-item" v-if="allInfo.freshmilkTransport.supplierIntime">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">牧场</div>
+                </div>
+                <div class="content" style="overflow: hidden">
+                    <div class="content-content">
+                        <div class="content-item">
+                            <div class="title">进场时间</div>
+                            <div class="val">{{allInfo.freshmilkTransport.supplierIntime}}</div>
+                        </div>
+                        <div class="content-item" v-if="allInfo.weightInfos.length>0">
+                            <div class="title">车辆皮重</div>
+                            <div class="val">{{allInfo.weightInfos[0].weightcount}}kg
+                                <c:if test="${sessionScope.superUserName=='root'}">
+                                    <i class="el-icon-edit" @click="editWeight(allInfo.weightInfos[0])"></i>
+                                </c:if>
+                            </div>
+
+                        </div>
+                    </div>
+                    <div class="content-content" style="width: 35%">
+                        <div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">
+                            <div class="title" style="min-width: 30px;">称重时间</div>
+                            <div class="val">{{allInfo.weightInfos[0].createdTime}}</div>
+                        </div>
+                    </div>
+                    <%--<div class="content-content" style="width:15%">--%>
+                    <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                    <%--<div class="title">称重员</div>--%>
+                    <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+
+                </div>
+                <div class="content scroll-box" v-if="allInfo.supplierDetections.length>0">
+                    <div class="titleLine">
+
+                    </div>
+
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            自检数据
+                        </div>
+                        <%--<div class="content-item">--%>
+                        <%--<div class="title">检验时间</div>--%>
+                        <%--</div>--%>
+                        <div class="content-item">
+                            <div class="title">取样人员信息</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">检验标准名称</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">检验结果</div>
+                        </div>
+                    </div>
+
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in allInfo.supplierDetections">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <%--<div class="content-item">--%>
+                            <%--<div class="val">{{item.createdUser}}</div>--%>
+                            <%--</div>--%>
+                            <div class="content-item">
+                                <div class="val">{{item.createdUser}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.checkName}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.checkValue}}</div>
+                            </div>
+                        </div>
+
+
+                    </div>
+
+
+                </div>
+                <div class="content scroll-box" v-if="allInfo.milkCylinders.length>0">
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            装奶数据
+                        </div>
+                        <div class="content-item" style="align-items: flex-start"
+                             :style="{height: getRealHeight(allInfo.milkCylinders,'cansealupCipNum')+'px'}">
+                            <div class="title">清洗仓口铅封号</div>
+                        </div>
+                        <div class="content-item" style="align-items: flex-start"
+                             :style="{height: getRealHeight(allInfo.milkCylinders,'cipSealnum')+'px'}">
+                            <div class="title">清洗槽口铅封号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">奶仓码</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">奶槽码</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">出缸温度</div>
+                        </div>
+                        <div class="content-item" style="align-items: flex-start"
+                             :style="{height: getRealHeight(allInfo.milkCylinders,'cansealupNum')+'px'}">
+                            <div class="title">仓口铅封号</div>
+                        </div>
+                        <div class="content-item" style="align-items: flex-start"
+                             :style="{height: getRealHeight(allInfo.milkCylinders,'cansealnum')+'px'}">
+                            <div class="title">槽口铅封号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">随车样</div>
+                        </div>
+
+                        <div class="content-item">
+                            <div class="title">槽车奶槽是否装满</div>
+                        </div>
+                    </div>
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in allInfo.milkCylinders">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <div class="content-item" style="flex-direction: column;align-items: flex-start"
+                                 :style="{height: getRealHeight(allInfo.milkCylinders,'cansealupCipNum')+'px'}">
+                                <%--<div class="val">{{item.cansealupCipNum}}-{{item.cansealupCipNumQr}}</div>--%>
+                                <div class="val" v-for="(todo,todoIndex) in getRetrunList(item.cansealupCipNum)">
+                                    {{todo}}-{{getRetrunList(item.cansealupCipNumQr)[todoIndex]}}
+                                </div>
+                            </div>
+                            <div class="content-item" style="flex-direction: column;align-items: flex-start"
+                                 :style="{height: getRealHeight(allInfo.milkCylinders,'cipSealnum')+'px'}">
+                                <%--<div class="val">{{item.cipSealnum}}-{{item.cipSealnumQr}}</div>--%>
+                                <div class="val" v-for="(todo,todoIndex) in getRetrunList(item.cipSealnum)">
+                                    {{todo}}-{{getRetrunList(item.cipSealnumQr)[todoIndex]}}
+                                </div>
+
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.milkcarupCylinderno}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.milkcarCylinderno}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.cylindert}}</div>
+                            </div>
+                            <div class="clickContent"
+                                 :style="{height: getRealHeight(allInfo.milkCylinders,'cansealupNum')+'px'}">
+                                <%--<div class="val">{{item.cansealupNum}}-{{item.cansealupNumQr}}</div>--%>
+                                <div class="val"
+                                     @click="showQRCode(getRetrunList(item.cansealupNumQr)[todoIndex],todo)"
+                                     v-for="(todo,todoIndex) in getRetrunList(item.cansealupNum)">
+                                    {{todo}}-{{getRetrunList(item.cansealupNumQr)[todoIndex]}}
+                                </div>
+                            </div>
+                            <div class="clickContent"
+                                 :style="{height: getRealHeight(allInfo.milkCylinders,'cansealnum')+'px'}">
+                                <%--<div class="val">{{item.cansealnum}}-{{item.cansealnumQr}}</div>--%>
+                                <div class="val"
+                                     @click="showQRCode(getRetrunList(item.cansealnumQr)[todoIndex],todo)"
+                                     v-for="(todo,todoIndex) in getRetrunList(item.cansealnum)">
+                                    {{todo}}-{{getRetrunList(item.cansealnumQr)[todoIndex]}}
+                                </div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.demonum}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.cylinderdelFlag?'是':'否'}}</div>
+                            </div>
+
+
+                        </div>
+                    </div>
+
+
+                </div>
+
+                <div class="content scroll-box" v-if="allInfo.demonum">
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            装奶留样数据
+                        </div>
+                        <div class="content-item">
+                            <div class="title">留样ID</div>
+                        </div>
+                    </div>
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in allInfo.demonum">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item}}</div>
+                            </div>
+                        </div>
+                    </div>
+
+
+                </div>
+
+                <div class="content" style="overflow: hidden" v-if="temp">
+                    <div class="content-content">
+                        <div class="content-item">
+                            <div class="superTitle">
+                                随车温度
+                            </div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">平均温度</div>
+                            <div class="val">{{temp.averageTemp}}℃</div>
+                        </div>
+                    </div>
+                    <div class="content-content" style="width: 35%">
+                        <div class="content-item" style="margin-top: 30px;">
+                            <div class="title" style="min-width: 30px;">峰值</div>
+                            <div class="val">{{temp.maxTemp}}℃</div>
+                        </div>
+                    </div>
+
+                    <div class="content-content" style="width: 35%">
+                        <div class="content-item" style="margin-top: 30px;">
+                            <div class="title" style="min-width: 30px;">谷值</div>
+                            <div class="val">{{temp.minTemp}}℃</div>
+                        </div>
+                    </div>
+
+
+                </div>
+
+                <div class="content" style="overflow: hidden" v-if="allInfo.freshmilkTransport.supplierOuttime">
+                    <div class="content-content">
+                        <div class="content-item" v-if="allInfo.freshmilkTransport.supplierOuttime">
+                            <div class="title">出场时间</div>
+                            <div class="val">{{allInfo.freshmilkTransport.supplierOuttime}}</div>
+                        </div>
+
+                        <div class="content-item" v-if="allInfo.weightInfos.length>1">
+                            <div class="title">车辆毛重</div>
+                            <div class="val">{{allInfo.weightInfos[1].weightcount}}kg
+                                <c:if test="${sessionScope.superUserName=='root'}">
+                                    <i class="el-icon-edit" @click="editWeight(allInfo.weightInfos[1])"></i>
+                                </c:if>
+                            </div>
+                        </div>
+
+
+                    </div>
+                    <div class="content-content" style="width: 35%">
+                        <div class="content-item" v-if="allInfo.weightInfos.length>1">
+                            <div class="title" style="min-width: 40px;">称重时间</div>
+                            <div class="val">{{allInfo.weightInfos[1].createdTime}}</div>
+                        </div>
+                        <div class="content-item" v-if="allInfo.weightInfos.length>1">
+                            <div class="title" style="min-width: 40px;">生鲜乳净重量</div>
+                            <div class="val">
+                                {{allInfo.weightInfos[1].weightcount-allInfo.weightInfos[0].weightcount}}kg
+                            </div>
+                        </div>
+                    </div>
+                    <%--<div class="content-content" style="width:15%">--%>
+                    <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                    <%--<div class="title">称重员</div>--%>
+                    <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+
+                </div>
+                <div class="line" v-if="allInfo.freshmilkTransport.factoryIntime||allInfo.status=='-2'"></div>
+
+            </div>
+            <div class="list-item" v-if="allInfo.freshmilkTransport.factoryIntime">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">工厂</div>
+                </div>
+                <div class="content" style="overflow: hidden">
+                    <div class="content-content">
+                        <div class="content-item" v-if="allInfo.freshmilkTransport.factoryIntime">
+                            <div class="title">进厂时间</div>
+                            <div class="val">{{allInfo.freshmilkTransport.factoryIntime}}</div>
+                            <div class="val">{{allInfo.freshmilkTransport.intype}}</div>
+                        </div>
+                        <div class="content-item" v-if="allInfo.weightInfos.length>2">
+                            <div class="title">车辆毛重</div>
+                            <div class="val">{{allInfo.weightInfos[2].weightcount}}kg</div>
+                        </div>
+                    </div>
+                    <div class="content-content" style="width: 35%">
+                        <div class="content-item" v-if="allInfo.weightInfos.length>2" style="margin-top: 30px;">
+                            <div class="title" style="min-width: 30px;">称重时间</div>
+                            <div class="val">{{allInfo.weightInfos[2].createdTime}}</div>
+                        </div>
+                    </div>
+                    <%--<div class="content-content" style="width:15%">--%>
+                    <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                    <%--<div class="title">称重员</div>--%>
+                    <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+
+                </div>
+
+                <div v-if="factoryTest" style="margin-top: 10px;">
+                    <div class="content" style="overflow: hidden">
+                        <div class="content-content">
+                            <div class="content-item">
+                                <div class="superTitle">
+                                    工厂验收信息
+                                </div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title">交接单号</div>
+                                <div class="val">{{factoryTest.handOverSheetNo}}</div>
+                            </div>
+                        </div>
+                        <div class="content-content" style="width: 35%">
+                            <div class="content-item" style="margin-top: 30px;">
+                                <div class="title" style="min-width: 30px;">供应商信息</div>
+                                <div class="val">{{allInfo.suppliername}}</div>
+                            </div>
+                        </div>
+                        <div class="content-content" style="width: 35%">
+                            <div class="content-item" style="margin-top: 30px;">
+                                <div class="title" style="min-width: 30px;">运输信息</div>
+                                <div class="val">{{allInfo.logstico}}</div>
+                            </div>
+                        </div>
+                        <%--<div class="content-content" style="width:15%">--%>
+                        <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                        <%--<div class="title">称重员</div>--%>
+                        <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                        <%--</div>--%>
+                        <%--</div>--%>
+
+                    </div>
+
+                    <div v-if="factoryTest.bulks" v-for="(item,index) in factoryTest.bulks">
+
+                        <div class="content"
+                             style="overflow: hidden;flex-wrap:wrap;margin-top: 10px;padding-bottom: 0px;">
+                            <div class="content-content">
+                                <div class="content-item">
+                                    <div class="superTitle">
+                                        工厂验收结果
+                                    </div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="title">槽车号</div>
+                                    <div class="val">{{item.bulkNo}}</div>
+                                </div>
+                            </div>
+                            <div class="content-content" style="width: 35%">
+                                <div class="content-item" style="margin-top: 30px;">
+                                    <div class="title" style="min-width: 30px;">结果</div>
+                                    <div class="val">{{item.assertion}}</div>
+                                </div>
+                            </div>
+
+                            <hr style="width:100%;background-color: #ccc;height: 1px;border: 0;margin-top:20px;">
+
+                        </div>
+
+                        <div class="content scroll-box" style="margin-top: 0px;" v-if="item.factoryDetections">
+                            <div class="content-content1"
+                                 style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+
+                                <div class="content-item">
+                                    <div class="title">检验信息</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="title">检测名称</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="title">检测值</div>
+                                </div>
+                                <div class="content-item">
+                                    <div class="title">检测结果</div>
+                                </div>
+
+                            </div>
+                            <div class="content-scroll">
+                                <div class="content-content2" v-for="(todo,todoindex) in item.factoryDetections">
+                                    <div class="content-item">
+                                        <div class="title">数据{{(todoindex+1)<10?'0'+(todoindex+1):(todoindex+1)}}</div>
+                                    </div>
+                                    <%--<div class="content-item">--%>
+                                    <%--<div class="val">{{item.createdUser}}</div>--%>
+                                    <%--</div>--%>
+                                    <div class="content-item">
+                                        <div class="val">{{todo.checkName}}</div>
+                                    </div>
+                                    <div class="content-item">
+                                        <div class="val">{{todo.checkValue}}</div>
+                                    </div>
+                                    <div class="content-item">
+                                        <div class="val">{{todo.checkResult}}</div>
+                                    </div>
+
+
+                                </div>
+                            </div>
+
+
+                        </div>
+
+
+                    </div>
+
+                    <div class="content" style="overflow: hidden">
+                        <div class="content-content">
+                            <div class="content-item">
+                                <div class="title" style="min-width: 30px;">检测时间</div>
+                                <div class="val">{{getTime(factoryTest.unloadTime)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title" style="min-width: 30px;">车辆毛重</div>
+                                <div class="val">{{factoryTest.grossWeight}}</div>
+                            </div>
+
+                        </div>
+                        <div class="content-content" style="width: 25%">
+                            <div class="content-item">
+                                <div class="title" style="min-width: 55px;">检验人</div>
+                                <div class="val">{{factoryTest.operator}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title" style="min-width: 55px;">生鲜乳交割量</div>
+                                <div class="val">{{factoryTest.quantity}}</div>
+                            </div>
+                        </div>
+                        <div class="content-content" style="width:45%">
+                            <div class="content-item">
+                                <div class="title" style="min-width: 55px;">打奶时间</div>
+                                <div class="val">{{getTime(factoryTest.operationTime)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="title" style="min-width:55px;">差异数</div>
+                                <div class="val">{{factoryTest.quantityDiff}}</div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+
+
+                <div class="content scroll-box" v-if="allInfo.factorymilkTanks.length>0">
+                    <div class="content-content1"
+                         style="position: absolute;top:20px;left:20px;background-color: #f2f4f5">
+                        <div class="superTitle">
+                            接奶信息
+                        </div>
+                        <div class="content-item">
+                            <div class="title">奶槽号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">收奶线号</div>
+                        </div>
+                        <div class="content-item">
+                            <div class="title">收奶状态</div>
+                        </div>
+
+                    </div>
+                    <div class="content-scroll">
+                        <div class="content-content2" v-for="(item,index) in allInfo.factorymilkTanks">
+                            <div class="content-item">
+                                <div class="title">数据{{(index+1)<10?'0'+(index+1):(index+1)}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.milkcarCylinderno}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.factoryMilkbarn}}</div>
+                            </div>
+                            <div class="content-item">
+                                <div class="val">{{item.milkStartime?(item.milkEndtime?'收奶结束':'收奶中'):'未收奶'}}</div>
+                            </div>
+
+
+                        </div>
+                    </div>
+
+
+                </div>
+
+
+                <div class="content" style="overflow: hidden" v-if="allInfo.freshmilkTransport.factoryOutime">
+                    <div class="content-content">
+                        <div class="content-item" v-if="allInfo.freshmilkTransport.factoryOutime">
+                            <div class="title">出厂时间</div>
+                            <div class="val">{{getTime(allInfo.freshmilkTransport.factoryOutime)}}</div>
+                        </div>
+
+                    </div>
+
+                    <%--<div class="content-content" style="width:15%">--%>
+                    <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                    <%--<div class="title">称重员</div>--%>
+                    <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+
+                </div>
+
+                <%--<div class="line"></div>--%>
+                <div class="line" v-if="allInfo.status=='-2'"></div>
+
+            </div>
+            <div class="list-item" v-if="allInfo.status=='-2'">
+                <div class="list-top">
+                    <div class="ball"></div>
+                    <div class="title">异常信息</div>
+                </div>
+
+                <div class="content" style="overflow: hidden">
+                    <div class="content-content">
+                        <div class="content-item" v-if="allInfo.freshmilkTransport.oddInfo">
+                            <div class="title">异常原因</div>
+                            <div class="val">{{allInfo.freshmilkTransport.oddInfo}}</div>
+                        </div>
+
+                        <div class="content-item showPhoto" v-if="allInfo.freshmilkTransport.realOddPhotos">
+                            <div class="title">图片</div>
+                            <div class="val" v-for="item in allInfo.freshmilkTransport.realOddPhotos">
+                                <img class="photo" :src="item" alt="" @click="showImg(item)">
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <%--<div class="content-content" style="width:15%">--%>
+                    <%--<div class="content-item" v-if="allInfo.weightInfos.length>0" style="margin-top: 30px;">--%>
+                    <%--<div class="title">称重员</div>--%>
+                    <%--<div class="val">{{allInfo.handoverno}}</div>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+
+                </div>
+
+                <%--<div class="line"></div>--%>
+
+            </div>
+
+            <div style="height: 100px"></div>
+
+
+            <el-dialog
+                    :title="selected ? selected: ''"
+                    v-model="dialogVisible"
+                    size="tiny">
+                <div id="qrcode" ref="qrcode"></div>
+                <span slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="download">下  载</el-button>
+        </span>
+            </el-dialog>
+
+            <el-dialog v-model="imageDialogVisible" size="small">
+                <img width="100%" :src="imgSrc" alt="">
+            </el-dialog>
+
+            <el-dialog
+                    title="修改重量"
+                    v-model="weightDialogVisible"
+                    size="tiny">
+                <el-input v-model="weightInfo.weightcount" placeholder="请输入重量">
+                    <template slot="append">KG</template>
+                </el-input>
+                <span slot="footer" class="dialog-footer">
+                    <el-button type="primary" @click="updateWeight">确 定</el-button>
+                </span>
+            </el-dialog>
+
+            <el-dialog
+                    title="修改交接单状态"
+                    v-model="statusDialogVisible"
+                    size="tiny">
+                <el-select v-model="changeStatus" clearable placeholder="请选择">
+                    <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                    </el-option>
+                </el-select>
+                <span slot="footer" class="dialog-footer">
+                    <el-button type="primary" @click="updateStatus">确 定</el-button>
+                </span>
+            </el-dialog>
+
+        </template>
+        <jsp:include page="contentAfter.jsp"/>
+</body>
+<script src="${pageContext.request.contextPath}/lib/jquery.qrcode.min.js"></script>
+<script>
+
+
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            if (getQueryString('type')) {
+                this.type = getQueryString('type')
+            }
+            else {
+                this.menu = '1'
+            }
+
+            var vm = this
+            $.get({
+                url: '../supplierdemandPlan/details',
+                data: {
+                    handoverno: getQueryString('handOverNo')
+                }
+            }).then(function (res) {
+                if (res.data[0].freshmilkTransport) {
+                    if (res.data[0].freshmilkTransport.demonum) {
+                        res.data[0].demonum = res.data[0].freshmilkTransport.demonum.split(',')
+                    }
+                }
+                else {
+                    res.data[0].freshmilkTransport = {}
+                }
+
+                console.log(res)
+                vm.allInfo = res.data[0];
+                console.log(vm.allInfo)
+                if (!this.type) {
+                    if (this.allInfo.status) {
+                        this.menu2 = this.allInfo.status
+                        if (this.allInfo.status > 1 && this.allInfo.status <= 6) {
+                            this.menu2 = "2-" + this.allInfo.status
+                        }
+                        if (this.allInfo.status > 7 && this.allInfo.status <= 10) {
+                            this.menu2 = "3-" + this.allInfo.status
+                        }
+                    }
+                    else {
+                        this.menu2 = '0-1'
+                    }
+                }
+
+            }.bind(this));
+
+            $.get({
+                url: '../carGps/getTemp',
+                data: {
+                    handoverno: getQueryString('handOverNo')
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.success) {
+                    this.temp = res.data
+                }
+
+            }.bind(this));
+
+            $.get({
+                url: '../carCip/getCarCipByHandoverno',
+                data: {
+                    handoverno: getQueryString('handOverNo')
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.success) {
+                    this.clean = res.data;
+                }
+
+
+            }.bind(this));
+
+
+            $.get({
+                url: '../collectionMilkresult/getOne',
+                data: {
+                    handOverSheetNo: getQueryString('handOverNo')
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.success) {
+                    this.factoryTest = res.data
+                    console.log(res.data)
+                }
+
+            }.bind(this));
+            $.get({
+                url: '../changeCarnoLog/all',
+                data: {
+                    handoverno: getQueryString('handOverNo')
+                }
+            }).then(function (res) {
+                if (res.success) {
+                    res.data.forEach(function (item) {
+                        item.createTime = moment(item.createTime).format('YYYY-MM-DD HH:mm:ss')
+                    })
+                    this.headHistory = res.data
+                }
+
+            }.bind(this));
+
+
+        },
+        mounted: function () {
+
+
+        },
+        data: function () {
+            return {
+                menu: '49',
+                menu2: '1-1',
+                allInfo: {},
+                temp: null,
+                type: null,
+                clean: null,
+                factoryTest: null,
+                dialogVisible: false,
+                qrcode: null,
+                selected: null,
+                headHistory: [],
+                imgSrc: '',
+                imageDialogVisible: false,
+                weightDialogVisible: false,
+                changeWeight: 0,
+                weightInfo: {weightcount: 0},
+                changeStatus: '',
+                statusDialogVisible: false,
+                options: [{
+                    value: '2',
+                    label: '进入牧场'
+                }, {
+                    value: '3',
+                    label: '进场称重'
+                }, {
+                    value: '4',
+                    label: '检测完成'
+                }, {
+                    value: '5',
+                    label: '装奶完成'
+                }, {
+                    value: '6',
+                    label: '出场称重'
+                }, {
+                    value: '7',
+                    label: '返程中'
+                }
+                ],
+
+            };
+        },
+        methods: {
+            getRetrunList: function (str) {
+                var list = []
+                if (str) {
+                    list = str.split(',')
+                }
+                return list
+            },
+            getRealHeight: function (data, str) {
+                var height = 20
+                var vm = this
+                if (data) {
+                    data.forEach(function (item) {
+                        var list = vm.getRetrunList(item[str])
+                        var height2 = list.length * 30
+                        if (height2 > height) {
+                            height = height2
+                        }
+                    })
+                }
+                return height
+            },
+            showQRCode: function (item, str) {
+                this.selected = str + '-' + item;
+                this.dialogVisible = true;
+                $.post({
+
+                    url: '../qrcode/encrypt',
+                    data: {
+                        text: item
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        setTimeout(function () {
+                            this.$refs.qrcode.innerHTML = '';
+                            $('#qrcode').qrcode({
+                                width: 200,
+                                height: 200,
+                                text: '13' + res.error,
+                            });
+                        }.bind(this), 10);
+                    } else {
+                        this.$message.error('展示失败');
+                    }
+                }.bind(this))
+
+            },
+            download: function () {
+                this.$refs.qrcode.querySelector('canvas').toBlob(function (blob) {
+                    saveAs(blob, this.selected.handoverno);
+                }.bind(this));
+            },
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                var data = JSON.parse(JSON.stringify(this.row_info));
+                $.post({
+                    url: this.edit ? '../milkPlan/update' : '../milkPlan/save',
+                    data: data
+                }).then(function (res) {
+                    if (res.success) {
+                        if (!this.edit) {
+                            this.row_info.id = res.data;
+                        }
+                        this.edit = true;
+                        this.$message.success(this.edit ? '保存成功' : '创建成功');
+                    } else {
+                        this.$message.error(this.edit ? '保存失败' : '创建失败');
+                    }
+                }.bind(this))
+            },
+            back: function () {
+                //history.back()
+                var str = 'allHandovernos'
+                str += getPageString("?");
+                if (getQueryString('status')) {
+
+                    if (getQueryString('status') > 99) {
+                        str = 'allHandovernosShow'
+                        str += getPageString("?");
+
+                    }
+
+                    str += '&status=' + getQueryString('status')
+                }
+                window.location = str;
+
+            },
+            getTime: function (time) {
+                var useTime = time.split('+')
+                return useTime[0]
+            },
+            inFactory: function () {
+
+                $.get({
+                    url: '../handover/time',
+                    data: {
+                        handoverno: getQueryString('handOverNo'),
+                        time: moment().format("YYYY/MM/DD HH:mm:ss"),
+                        intype: '1',
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if (res.success) {
+                        location.reload();
+                    }
+
+                }.bind(this));
+            },
+            doCancel: function () {
+
+
+                var ids = this.allInfo.id;
+
+                this.$confirm('确定要作废交接单吗?', '提示', {
+                    confirmButtonText: '作废',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.get({
+                        url: '../freshmilkTransport/cancelTask',
+                        data: {
+                            ids: ids,
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('作废交接单成功!');
+                        location.reload();
+                    } else {
+                        this.$message.error('作废交接单失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+
+            },
+            showImg: function (img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
+            editWeight: function (weightInfo) {
+
+                //console.log(weightInfo);
+                this.weightInfo = weightInfo;
+                this.weightDialogVisible = true;
+
+            },
+            updateWeight: function () {
+
+                $.post({
+                    url: '../weightInfo/update',
+                    data: {
+                        id: this.weightInfo.id,
+                        weightcount: this.weightInfo.weightcount
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('保存成功');
+                        this.weightDialogVisible = false;
+                    } else {
+                        this.$message.error('保存失败');
+                    }
+                }.bind(this))
+
+            },
+            editStatus: function () {
+
+                this.statusDialogVisible = true;
+
+            },
+            updateStatus: function () {
+
+                if (this.changeStatus) {
+
+
+                    var ids = this.allInfo.id;
+
+                    this.$confirm('确定要更改交接单状态吗?', '提示', {
+                        confirmButtonText: '确认',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(function () {
+                        return $.post({
+                            url: '../supplierdemandPlan/update',
+                            data: {
+                                id: ids,
+                                status: this.changeStatus,
+                            }
+                        })
+                    }.bind(this)).then(function (res) {
+                        if (res.success) {
+                            this.statusDialogVisible = false;
+                            this.$message.success('交接单状态更改成功!');
+                            location.reload();
+                        } else {
+                            this.$message.error('交接单状态更改失败');
+                        }
+                    }.bind(this)).catch(function () {
+
+                    });
+                } else {
+                    this.$message.error('请选择交接单状态!');
+                }
+            },
+        }
+    })
+</script>
+</html>
+

+ 460 - 0
Web/WEB-INF/jsp/newAdmin/head.jsp

@@ -0,0 +1,460 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 10:07
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<style>
+    html, body {
+        padding: 0;
+        margin: 0;
+        font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
+    }
+
+    a {
+        text-decoration: none;
+    }
+
+    .db .el-dropdown-menu {
+        margin-top: 20px;
+    }
+
+    .db .db-header {
+        width: 100%;
+        height: 80px;
+        line-height: 80px;
+        background: #22A6E1;
+        padding: 0 20px;
+        box-sizing: border-box;
+        color: #ffffff;
+        z-index: 99;
+        /*position: fixed;*/
+        left: 0;
+        top: 0;
+        align-items: center;
+        min-height: 80px;
+    }
+
+    .head-menu {
+        height: 80px;
+    }
+
+    .db .db-header .logo {
+    }
+
+    .db .db-header .user-info {
+        float: right;
+    }
+
+    .db .db-header .user-info img {
+        width: 25px;
+        height: 25px;
+        vertical-align: -7px;
+        margin: 0 0 0 10px;
+        cursor: pointer;
+    }
+
+    #app .db-body {
+        display: flex;
+        flex-grow: 1;
+    }
+
+    .db .db-body .db-menu-wrapper {
+        /*position: fixed;*/
+        /*left: 0;*/
+        /*top: 80px;*/
+        /*background: red;*/
+        /*height: 100%;*/
+        overflow: auto;
+        z-index: 98;
+        /*flex-grow: 1;*/
+        /*display: flex;*/
+        width: 200px;
+        min-width: 200px;
+    }
+
+    .db .db-body .db-menu-wrapper .db-menu-bar {
+        height: 100%;
+        flex-grow: 0;
+        width: 200px;
+    }
+
+    .db .db-body .db-content-wrapper {
+        width: 100%;
+        /* z-index: 97;*/
+        box-sizing: border-box;
+        padding: 20px 0 0 10px;
+        overflow: scroll;
+    }
+
+    .db .db-body .db-content-wrapper .db-content {
+        padding: 25px;
+    }
+
+    .db .db-body .db-content-wrapper .db-content .db-content-inner {
+        padding: 30px 0px;
+    }
+
+    .line {
+        text-align: center;
+    }
+
+    .filters {
+        margin: 0 0 20px 0;
+        border: 1px #efefef solid;
+        padding: 10px;
+        background: #f9f9f9;
+        display: flex;
+        align-items: center;
+    }
+
+    .filters .num {
+        flex-grow: 1;
+        display: flex;
+        justify-content: flex-end;
+    }
+
+    .pagination-wrapper {
+        text-align: center;
+        padding: 30px;
+    }
+
+    .userIcon {
+        width: 36px;
+        height: 36px;
+        border-radius: 50%;
+        margin: 4px;
+    }
+
+    .singleImg {
+        max-width: 100px;
+        height: 100px;
+        margin: 4px;
+    }
+
+    .el-input, .el-input-number, .el-input-select {
+        /*width: 220px !important;*/
+    }
+
+    .btn_confirm {
+        display: inline-block;
+        line-height: 1;
+        white-space: nowrap;
+        cursor: pointer;
+        background: #20a0ff;
+        border: 1px solid #20a0ff;
+        color: #1f2d3d;
+        -webkit-appearance: none;
+        text-align: center;
+        box-sizing: border-box;
+        outline: 0;
+        margin: 0;
+        padding: 10px 15px;
+        font-size: 14px;
+        border-radius: 4px;
+    }
+
+    .el-upload--picture-card {
+        display: flex !important;
+        align-items: center;
+        justify-content: center;
+    }
+
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #20a0ff;
+    }
+
+    .avatar {
+        width: 178px;
+        height: 178px;
+        display: block;
+    }
+
+    .avatar-uploader .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 178px;
+        height: 178px;
+        line-height: 178px;
+        text-align: center;
+    }
+
+    .filter-bar {
+
+    }
+
+    .filter-bar .el-input {
+        width: 100% !important;
+        margin-bottom: 20px;
+    }
+
+    .filter-bar .el-button {
+        margin-bottom: 20px;
+    }
+
+    .filter-bar .el-cascader {
+        margin-bottom: 20px;
+    }
+
+    .filter-bar .el-cascader .el-input {
+        margin-bottom: 0;
+    }
+
+    .el-input-number__decrease .el-icon-minus,
+    .el-input-number__increase .el-icon-minus,
+    .el-input-number__decrease .el-icon-plus,
+    .el-input-number__increase .el-icon-plus {
+        line-height: inherit;
+    }
+
+    .printBtn {
+        display: inline-block;
+        line-height: 1;
+        white-space: nowrap;
+        cursor: pointer;
+        background: #fff;
+        border: 1px solid #bfcbd9;
+        color: #1f2d3d;
+        -webkit-appearance: none;
+        text-align: center;
+        box-sizing: border-box;
+        outline: 0;
+        margin: 0;
+        padding: 10px 15px;
+        font-size: 14px;
+        border-radius: 4px;
+        margin-left: 10px;
+    }
+
+    .el-form {
+        max-width: 440px;
+    }
+
+    .el-select {
+        width: 100%;
+    }
+
+
+</style>
+
+<style>
+
+
+    .closed-signboard {
+        width: 100px;
+        height: 75px;
+        margin: 0px auto 50px;
+        position: relative;
+        transform: scale(1) rotatez(7deg) translate(-17px, 1px);
+        animation: 1s init, 0.7s aa 1s, 3s ab 1.7s infinite;
+    }
+
+    .logo_he {
+        display: block;
+        margin: 100px auto 20px;
+        width: 243px;
+    }
+
+    @keyframes aa {
+        0% {
+            transform: scale(1);
+        }
+        100% {
+            transform: scale(1) rotatez(7deg) translate(-17px, 1px);
+        }
+    }
+
+    @keyframes ab {
+        0% {
+            transform: rotatez(7deg) translate(-17px, 1px);
+        }
+        50% {
+            transform: rotatez(-7deg) translate(17px, 1px);
+        }
+        100% {
+            transform: rotatez(7deg) translate(-17px, 1px);
+        }
+    }
+
+    .sign {
+        color: white;
+        font-family: "Lato", sans-serif;
+        font-size: 20px;
+        font-weight: bold;
+        text-align: center;
+        background: #22A6E1;
+        width: 100%;
+        height: 50px;
+        line-height: 50px;
+        position: absolute;
+        bottom: 0;
+        border-radius: 4px / 5px;
+        text-shadow: 0 2px #2694C9;
+    }
+
+    .strings {
+        width: 37.5px;
+        height: 37.5px;
+        border: solid 5px #ad5700;
+        border-bottom: none;
+        border-right: none;
+        position: absolute;
+        top: 8px;
+        left: 30px;
+        transform: rotatez(45deg);
+    }
+
+    .pin {
+        width: 10px;
+        height: 10px;
+        position: absolute;
+        border-radius: 25px;
+    }
+
+    .pin.pin1 {
+        background: #9f9f9f;
+        top: -2px;
+        left: 46px;
+    }
+
+    .pin.pin2, .pin.pin3 {
+        background: #2694C9;
+    }
+
+    .pin.pin2 {
+        top: 26px;
+        left: 20px;
+    }
+
+    .pin.pin3 {
+        top: 26px;
+        right: 16px;
+    }
+
+    @keyframes init {
+        from {
+            transform: scale(0);
+        }
+        to {
+            transform: scale(1);
+        }
+    }
+
+    table {
+        font-size: 14px;
+    }
+
+    .ellipsis .cell {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-box-orient: vertical;
+        -webkit-line-clamp: 1;
+
+    }
+
+    /*.el-table__fixed-body-wrapper .ellipsis{*/
+    /*height: 40px;*/
+    /*}*/
+    .el-table__fixed-body-wrapper .ellipsis .cell {
+        height: 39px;
+        display: flex;
+        align-items: center;
+        justify-content: flex-end;
+    }
+
+</style>
+<link rel="stylesheet" href="${pageContext.request.contextPath}/lib/element/element-ui.css">
+<script src="${pageContext.request.contextPath}/lib/jquery/jquery-3.1.1.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/jquery/qrcode.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/vue/vue.js"></script>
+<script src="${pageContext.request.contextPath}/lib/element/element-ui.js"></script>
+<script src="${pageContext.request.contextPath}/lib/moment/moment.min.js"></script>
+<script src="${pageContext.request.contextPath}/lib/moment/zh-cn.js"></script>
+<%--<script src="${pageContext.request.contextPath}/js/LodopFuncs.js"></script>--%>
+<script>
+    var superAdmin = Boolean(${superAdmin});
+    var LODOP;
+
+    function saveAsXLSX(data, name) {
+        function sheet_from_array_of_arrays(d, opts) {
+            var ws = {};
+            var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}};
+            for (var R = 0; R != d.length; ++R) {
+                for (var C = 0; C != d[R].length; ++C) {
+                    if (range.s.r > R) range.s.r = R;
+                    if (range.s.c > C) range.s.c = C;
+                    if (range.e.r < R) range.e.r = R;
+                    if (range.e.c < C) range.e.c = C;
+                    var cell = {v: d[R][C]};
+                    if (cell.v == null) continue;
+                    var cell_ref = XLSX.utils.encode_cell({c: C, r: R});
+
+                    if (typeof cell.v === 'number') cell.t = 'n';
+                    else if (typeof cell.v === 'boolean') cell.t = 'b';
+                    else if (cell.v instanceof Date) {
+                        cell.t = 'n';
+                        cell.z = XLSX.SSF._table[14];
+                        cell.v = datenum(cell.v);
+                    }
+                    else cell.t = 's';
+
+                    ws[cell_ref] = cell;
+                }
+            }
+            if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
+            return ws;
+        }
+
+        function Workbook() {
+            if (!(this instanceof Workbook)) return new Workbook();
+            this.SheetNames = [];
+            this.Sheets = {};
+        }
+
+        var ws_name = "SheetJS";
+        var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
+
+        /* add worksheet to workbook */
+        wb.SheetNames.push(ws_name);
+        wb.Sheets[ws_name] = ws;
+        var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: true, type: 'binary'});
+
+        function s2ab(s) {
+            var buf = new ArrayBuffer(s.length);
+            var view = new Uint8Array(buf);
+            for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
+            return buf;
+        }
+
+        saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), name + '.xlsx');
+    }
+
+
+    function getPageString(headStr) {
+
+        var pageString = "";
+        if (getQueryString('currentPage')) {
+
+            pageString = headStr + "currentPage=" + getQueryString('currentPage') + "&pageSize=" + getQueryString('pageSize');
+        }
+        return pageString;
+    }
+
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+</script>

+ 74 - 0
Web/WEB-INF/jsp/newAdmin/index.jsp

@@ -0,0 +1,74 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 9:53
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="index">
+    <img class="logo_he" src="${pageContext.request.contextPath}/images/logo2.png" alt="">
+    <div class="closed-signboard">
+        <div class="sign">
+            奶源追溯
+        </div>
+        <div class="strings"></div>
+        <div class="pin pin1"></div>
+        <div class="pin pin2"></div>
+        <div class="pin pin3"></div>
+    </div>
+
+
+</div>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+    new Vue({
+        el: '#app',
+        created: function () {
+                $.post({
+                    url: '../mis/loginNoCode',
+                    data: {
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                       console.log("mis_login")
+                    }
+                }.bind(this));
+        },
+        data: function () {
+            return {
+                menu: '',
+                user: {
+                    id: '',
+                    username: 'admin',
+                    avatar: ''
+                }
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+        }.bind(this)).catch(function (e) {
+
+                });
+            }
+        }
+    })
+</script>
+
+
+</html>

+ 180 - 0
Web/WEB-INF/jsp/newAdmin/limsDetection.jsp

@@ -0,0 +1,180 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="samplingTime">
+			<el-input v-model="row_info.samplingTime"></el-input>
+		</el-form-item>
+		<el-form-item label="samplingerInfo">
+			<el-input v-model="row_info.samplingerInfo"></el-input>
+		</el-form-item>
+		<el-form-item label="testTime">
+			<el-input v-model="row_info.testTime"></el-input>
+		</el-form-item>
+		<el-form-item label="standards">
+			<el-input v-model="row_info.standards"></el-input>
+		</el-form-item>
+		<el-form-item label="standardName">
+			<el-input v-model="row_info.standardName"></el-input>
+		</el-form-item>
+		<el-form-item label="testResult">
+			<el-input v-model="row_info.testResult"></el-input>
+		</el-form-item>
+		<el-form-item label="testingFacility">
+			<el-input v-model="row_info.testingFacility"></el-input>
+		</el-form-item>
+		<el-form-item label="Inspectors">
+			<el-input v-model="row_info.Inspectors"></el-input>
+		</el-form-item>
+		<el-form-item label="tempIntime">
+			<el-input v-model="row_info.tempIntime"></el-input>
+		</el-form-item>
+		<el-form-item label="fat">
+			<el-input v-model="row_info.fat"></el-input>
+		</el-form-item>
+		<el-form-item label="protein">
+			<el-input v-model="row_info.protein"></el-input>
+		</el-form-item>
+		<el-form-item label="notFatSolid">
+			<el-input v-model="row_info.notFatSolid"></el-input>
+		</el-form-item>
+		<el-form-item label="cylinderNo">
+			<el-input v-model="row_info.cylinderNo"></el-input>
+		</el-form-item>
+		<el-form-item label="freezPoint">
+			<el-input v-model="row_info.freezPoint"></el-input>
+		</el-form-item>
+		<el-form-item label="sensory">
+			<el-input v-model="row_info.sensory"></el-input>
+		</el-form-item>
+		<el-form-item label="relativeDensity">
+			<el-input v-model="row_info.relativeDensity"></el-input>
+		</el-form-item>
+		<el-form-item label="acidity">
+			<el-input v-model="row_info.acidity"></el-input>
+		</el-form-item>
+		<el-form-item label="poorAfterBoil">
+			<el-input v-model="row_info.poorAfterBoil"></el-input>
+		</el-form-item>
+		<el-form-item label="impurityDegree">
+			<el-input v-model="row_info.impurityDegree"></el-input>
+		</el-form-item>
+		<el-form-item label="alcoholExperiment">
+			<el-input v-model="row_info.alcoholExperiment"></el-input>
+		</el-form-item>
+		<el-form-item label="alkaliDopedExperiment">
+			<el-input v-model="row_info.alkaliDopedExperiment"></el-input>
+		</el-form-item>
+		<el-form-item label="antibiotics">
+			<el-input v-model="row_info.antibiotics"></el-input>
+		</el-form-item>
+		<el-form-item label="oilBath">
+			<el-input v-model="row_info.oilBath"></el-input>
+		</el-form-item>
+		<el-form-item label="hydrogenPeroxide">
+			<el-input v-model="row_info.hydrogenPeroxide"></el-input>
+		</el-form-item>
+		<el-form-item label="nitrite">
+			<el-input v-model="row_info.nitrite"></el-input>
+		</el-form-item>
+		<el-form-item label="dichromate">
+			<el-input v-model="row_info.dichromate"></el-input>
+		</el-form-item>
+		<el-form-item label="phosphate">
+			<el-input v-model="row_info.phosphate"></el-input>
+		</el-form-item>
+		<el-form-item label="addSpecieName">
+			<el-input v-model="row_info.addSpecieName"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../limsDetection/getLimsDetection',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../limsDetection/update' : '../limsDetection/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 291 - 0
Web/WEB-INF/jsp/newAdmin/limsDetections.jsp

@@ -0,0 +1,291 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="samplingTime"
+				label="samplingTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="samplingerInfo"
+				label="samplingerInfo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="testTime"
+				label="testTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="standards"
+				label="standards"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="standardName"
+				label="standardName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="testResult"
+				label="testResult"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="testingFacility"
+				label="testingFacility"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="Inspectors"
+				label="Inspectors"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="tempIntime"
+				label="tempIntime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="fat"
+				label="fat"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="protein"
+				label="protein"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="notFatSolid"
+				label="notFatSolid"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="cylinderNo"
+				label="cylinderNo"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="freezPoint"
+				label="freezPoint"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="sensory"
+				label="sensory"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="relativeDensity"
+				label="relativeDensity"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="acidity"
+				label="acidity"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="poorAfterBoil"
+				label="poorAfterBoil"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="impurityDegree"
+				label="impurityDegree"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="alcoholExperiment"
+				label="alcoholExperiment"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="alkaliDopedExperiment"
+				label="alkaliDopedExperiment"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="antibiotics"
+				label="antibiotics"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="oilBath"
+				label="oilBath"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="hydrogenPeroxide"
+				label="hydrogenPeroxide"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="nitrite"
+				label="nitrite"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="dichromate"
+				label="dichromate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="phosphate"
+				label="phosphate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="addSpecieName"
+				label="addSpecieName"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../limsDetection/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'limsDetection?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../limsDetection/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'limsDetection';
+			}
+		}
+	})
+</script>
+</html>
+

+ 245 - 0
Web/WEB-INF/jsp/newAdmin/login.jsp

@@ -0,0 +1,245 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: 熊竹
+  Date: 2017/3/9
+  Time: 11:39
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>奶源追溯系统</title>
+    <style lang="scss" scoped>
+        #login-page {
+            width: 100vw;
+            height: 100vh;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            background: #efeeee;
+            background-image: url(${pageContext.request.contextPath}/images/bg_02.jpg);
+            background-size: cover;
+
+        }
+
+        #login-page .login-form {
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            width: 630px;
+            height: 450px;
+            border-radius: 12px;
+            background: white;
+            /*border: 1px #eaeaea solid;*/
+            box-shadow: 0px 0px 25px rgba(0, 0, 0, .3);
+            overflow: hidden;
+
+        }
+
+        #login-page .login-form .title {
+            color: #20a0ff;
+            font-weight: bold;
+            font-size: 40px;
+            text-align: center;
+            line-height: 2.2;
+            font-family: sans-serif;
+            margin-bottom: 30px;
+        }
+
+        #login-page .login-form .title img {
+            width: 234px;
+        }
+
+        #login-page .login-form .input-group {
+            margin-top: 30px;
+            width: 320px;
+        }
+
+        #login-page .login-form .input-group .icon {
+            width: 22px;
+            height: 22px;
+            margin-right: 5%;
+            margin-bottom: 10px;
+        }
+
+        #login-page .login-form .input-group .yanze {
+            width: 136px;
+            height: 40px;
+            align-self: center;
+        }
+
+        #login-page .login-form .input-group:not(:first-child) {
+            border-bottom: 1px solid #C6CACC;
+            display: flex;
+            align-items: flex-end;
+            height: 66px;
+            margin-top: 0;
+        }
+
+        #login-page .login-form .input-group .el-input__inner {
+            border: none;
+            font-size: 15px;
+            margin-bottom: 5px;
+        }
+
+        #login-page .login-form .input-group button {
+            width: 100%;
+            height: 44px;
+            border-radius: 100px;
+            background-image: linear-gradient(#1DA4DE, #54ACD8);
+            border: none;
+            -webkit-box-shadow: 0px 10px 20px 3px rgba(132, 203, 233, .8);
+            -moz-box-shadow: 0px 10px 20px 3px rgba(132, 203, 233, .8);
+            box-shadow: 0px 10px 20px 3px rgba(132, 203, 233, .8);
+
+        }
+
+        .title2{
+            height:100px;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            background:linear-gradient(rgba(29,164,222,1),rgba(84,172,216,1));
+        }
+        .title2 img{
+            /*width: 60px;*/
+            height: 60px;
+        }
+
+
+        .title2 span{
+            font-size:30px;
+            color:rgba(255,255,255,1);
+            margin-left: 20px;
+            font-family: "Microsoft YaHei", sans-serif;
+        }
+
+    </style>
+</head>
+<body>
+<div id="app">
+    <div id="login-page" @keyup.enter="login">
+        <div class="login-form">
+            <div class="input-group" style="margin-top: 0px;width: 100%">
+                <div class="title2">
+                    <img src="${pageContext.request.contextPath}/images/logo3.png" alt="">
+                    <span>奶源追溯管理系统</span>
+
+                </div>
+            </div>
+            <div class="input-group">
+                <img class="icon" src="${pageContext.request.contextPath}/images/icon_zhanghao@3x.png" alt="">
+                <el-input
+                        :autofocus="true"
+                        placeholder="请输入用户名"
+
+                        v-model="username">
+                </el-input>
+            </div>
+            <div class="input-group">
+                <img class="icon" src="${pageContext.request.contextPath}/images/icon_mima@3x.png" alt="">
+                <el-input
+                        placeholder="请输入密码"
+                        type="password"
+
+                        v-model="password">
+                </el-input>
+            </div>
+            <div class="input-group">
+                <img class="icon" src="${pageContext.request.contextPath}/images/icon_yanzhengma@3x.png" alt="">
+                <el-input
+                        style="width: 280px;"
+                        placeholder="请输入验证码"
+
+                        v-model="code">
+                </el-input>
+                <img class="yanze" src="../auth/image" ref="img" @click="refresh">
+            </div>
+            <%--<div class="input-group">--%>
+            <%--<label>记住我?</label>--%>
+            <%--<el-switch--%>
+            <%--v-model="rememberMe"--%>
+            <%--on-text=""--%>
+            <%--off-text="">--%>
+            <%--</el-switch>--%>
+            <%--</div>--%>
+            <div class="input-group" style="border: none;margin-top: 28px;">
+                <el-button @click.native="login" type="primary" :loading="isBtnLoading">{{btnText}}</el-button>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+<script language="javascript"> //防止页面后退
+history.pushState(null, null, document.URL);
+window.addEventListener('popstate', function () {
+    history.pushState(null, null, document.URL);
+});
+</script>
+<script>
+    new Vue({
+        el: '#app',
+        data: function () {
+            return {
+                username: '',
+                password: '',
+                code: '',
+                rememberMe: false,
+                isBtnLoading: false
+            };
+        },
+        computed: {
+            btnText: function () {
+                if (this.isBtnLoading) return '登录中...';
+                return '登录';
+            }
+        },
+        methods: {
+            login: function () {
+                //window.location.href = 'index';
+                this.isBtnLoading = true;
+                $.post({
+                    url: '../userInfo/loginBack',
+                    data: {
+                        userName: this.username,
+                        password: this.password,
+                        code: this.code
+                    }
+                }).then(function (res) {
+                    this.isBtnLoading = false;
+                    if (res.success) {
+
+                        if (res.error == '1') {
+
+                            this.$confirm('密码已过期,请及时修改密码!', '提示', {
+                                confirmButtonText: '确定',
+                                cancelButtonText: '取消',
+                                type: 'info'
+                            }).then(function () {
+                                window.location.href = '../admin/index';
+                            }.bind(this)).catch(function (e) {
+                                window.location.href = '../admin/index';
+
+                            });
+                        } else {
+                            window.location.href = '../admin/index';
+                        }
+
+
+                        //window.location.href = '../admin/allHandovernos';
+
+                    } else {
+                        this.refresh();
+                        this.$message.error(res.error);
+                    }
+                }.bind(this));
+            },
+            refresh: function () {
+                this.$refs.img.src = '${pageContext.request.contextPath}/auth/image' + '?' + Math.random();
+            }
+        }
+    })
+</script>
+</html>

+ 311 - 0
Web/WEB-INF/jsp/newAdmin/logisticsCo.jsp

@@ -0,0 +1,311 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>物流公司信息</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+	<%--	<el-form-item label="序号">
+			<el-input v-model="row_info.serialNo"></el-input>
+		</el-form-item>--%>
+		<el-form-item label="编号">
+			<el-input v-model="row_info.numbering"></el-input>
+		</el-form-item>
+		<el-form-item label="公司名称">
+			<el-input v-model="row_info.coName"></el-input>
+		</el-form-item>
+		<el-form-item label="公司简称">
+			<el-input v-model="row_info.coAbb"></el-input>
+		</el-form-item>
+		<el-form-item label="联系方式">
+			<el-input v-model="row_info.phone"></el-input>
+		</el-form-item>
+		<el-form-item label="联系人">
+			<el-input v-model="row_info.contacter"></el-input>
+		</el-form-item>
+		<el-form-item label="地址">
+			<el-input v-model="row_info.address"></el-input>
+		</el-form-item>
+		<el-form-item label="备注">
+			<el-input v-model="row_info.note"></el-input>
+		</el-form-item>
+		<el-form-item label="状态">
+
+			<el-select v-model="row_info.codelFlag" placeholder="请选择">
+				<el-option
+						v-for="item in options"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item label="物流公司营业执照">
+			<el-upload
+					accept="image/jpeg"
+					class="avatar-uploader"
+					action="../assets/uploadFile"
+					:show-file-list="false"
+					:on-success="contactAvatarSuccess">
+				<img v-if="avatar" :src="avatar" class="avatar">
+				<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+			</el-upload>
+			<el-button v-if="avatar" @click="showImg(avatar)">查看</el-button>
+		</el-form-item>
+
+		<el-form-item label="特种行业准运证">
+			<el-upload
+					accept="image/jpeg"
+					class="avatar-uploader"
+					action="../assets/uploadFile"
+					:show-file-list="false"
+					:on-success="contactAvatarDetailSuccess">
+				<img v-if="avatarDetail" :src="avatarDetail" class="avatar">
+				<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+			</el-upload>
+			<el-button v-if="avatarDetail" @click="showImg(avatarDetail)">查看</el-button>
+		</el-form-item>
+		<el-form-item label="拼音简码">
+			<el-input v-model="row_info.shortName"></el-input>
+		</el-form-item>
+		<el-form-item label="隶属部门">
+			<el-cascader
+					v-model="deptCode"
+					:options="departs"
+					change-on-select
+					:show-all-levels="false"
+					style="width: 70%"
+			></el-cascader>
+		</el-form-item>
+		<%--<el-form-item label="创建人">--%>
+			<%--<el-input v-model="row_info.createdUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="创建时间">--%>
+			<%--<el-input v-model="row_info.createdTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedUser">--%>
+			<%--<el-input v-model="row_info.modifiedUser"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="modifiedTime">--%>
+			<%--<el-input v-model="row_info.modifiedTime"></el-input>--%>
+		<%--</el-form-item>--%>
+		<%--<el-form-item label="delFlag">--%>
+			<%--<el-input v-model="row_info.delFlag"></el-input>--%>
+		<%--</el-form-item>--%>
+
+		<el-form-item label="GPS厂家">
+
+			<el-select v-model="row_info.gpsCompany" placeholder="请选择">
+				<el-option
+						v-for="item in gpsCompanyOptions"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+				</el-option>
+			</el-select>
+
+		</el-form-item>
+
+		<el-form-item label="GPS账号">
+			<el-input v-model="row_info.username"></el-input>
+		</el-form-item>
+
+		<el-form-item label="GPS密码">
+			<el-input v-model="row_info.password"></el-input>
+		</el-form-item>
+
+
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button @click="back">返回</el-button>
+	</el-form-item>
+	</el-form>
+	<el-dialog v-model="imageDialogVisible" size="small">
+		<img width="100%" :src="imgSrc" alt="">
+	</el-dialog>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../logisticsCo/getLogisticsCo',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+
+						if(!res.data.gpsCompany){
+                            res.data.gpsCompany = '';
+						}
+						this.row_info = res.data;
+                        if (res.data.realphoto) {
+                            this.avatar = res.data.realphoto;
+                        }
+                        if(res.data.realSpecialPhoto){
+                            this.avatarDetail = res.data.realSpecialPhoto;
+                        }
+                        this.deptCode = res.data.deptCode.split(",");
+					}
+				}.bind(this));
+			}
+
+
+            $.get({
+                url: '../userInfo/departInfoTree',
+                data: {
+                    includeParent:1
+				}
+            }).then(function (res) {
+                if (res.success) {
+                    function parse(list) {
+                        if (list) {
+                            list.forEach(function (t) {
+                                t.value = t.extra;
+                                t.label = t.name + "(" + t.id + ")";
+                                if (t.children && t.children.length > 0) {
+                                    parse(t.children)
+                                }
+                            })
+                        }
+                        return list;
+                    }
+
+                    this.departs = parse(res.data.pp);
+                }
+            }.bind(this));
+		},
+		data: function () {
+			return {
+                menu: '7',
+                menu2: '7-3',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: '',
+                    avatarDetail:'',
+				},
+                avatar: '',
+                avatarDetail:'',
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {
+                    codelFlag:'0',
+                    realphoto: '',
+                    realSpecialPhoto:'',
+                    deptCode: '',
+                    gpsCompany:'',
+				},
+
+                options: [{
+                    value: '0',
+                    label: '启用'
+                }, {
+                    value: '1',
+                    label: '停用'
+                }],
+                gpsCompanyOptions: [{
+                    value: 'TCWL',
+                    label: '坦程物联GPS'
+                }, {
+                    value: 'ZHXBD',
+                    label: '中航星北斗GPS'
+                }],
+                deptCode: [],
+                departs: [],
+                imageDialogVisible: false,
+                imgSrc: ''
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+                if (!this.deptCode.length > 0) {
+                    this.$message.error("隶属部门不能为空!");
+                }else{
+                    var data = JSON.parse(JSON.stringify(this.row_info));
+                    delete data.createdTime;
+                    delete data.modifiedTime;
+                    delete data.realphoto;
+                    delete data.realSpecialPhoto;
+                    delete data.departInfo;
+
+                   /* if (data.deptCode[0] === '1' && data.deptCode[1] === '0') {
+                        data.deptCode =  this.deptCode.join();
+                    }else {*/
+                        data.deptCode = this.deptCode.join();
+
+                    $.post({
+                        url: this.edit ? '../logisticsCo/update' : '../logisticsCo/save',
+                        data: data
+                    }).then(function (res) {
+                        if (res.success) {
+                            if (!this.edit) {
+                                this.row_info.id = res.data;
+                            }
+                            this.edit = true;
+                            this.$message.success(this.edit ? '保存成功' : '创建成功');
+                            window.location="logisticsCos"+ getPageString("?");
+                        } else {
+                            this.$message.error(this.edit ? '保存失败' : '创建失败');
+                        }
+                    }.bind(this))
+				}
+			},
+            back:function () {
+				window.location.href = '../admin/logisticsCos' + getPageString("?");
+            },
+			contactAvatarSuccess: function (res, file, fileList) {
+                if (res.success) {
+                    this.row_info.photo = res.data[0];
+                }
+                this.avatar = URL.createObjectURL(file.raw);
+            },
+            contactAvatarDetailSuccess: function (res, file, fileList) {
+
+                if (res.success) {
+                    console.log(res)
+                    this.row_info.specialPhoto = res.data[0];
+                }
+                this.avatarDetail = URL.createObjectURL(file.raw);
+            },
+            showImg: function (img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
+		}
+	})
+</script>
+</html>
+

+ 376 - 0
Web/WEB-INF/jsp/newAdmin/logisticsCos.jsp

@@ -0,0 +1,376 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>物流公司信息</title>
+    <style>
+        .db-content-wrapper {
+            display: flex;
+            flex-direction: column;
+            overflow: auto !important;
+        }
+
+        .db-content {
+            flex-grow: 1;
+            padding: 0 25px !important;
+            overflow: hidden;
+        }
+
+        .filters {
+            margin-top: 25px;
+        }
+    </style>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<jsp:include page="systemLeft.jsp"/>
+<template>
+    <div class="filters">
+
+
+        <el-button type="primary" @click="create()">创建</el-button>
+        &nbsp;&nbsp;&nbsp;
+        <el-col :xs="24" :sm="6" :md="5" :lg="3">
+            <el-input placeholder="关键字" v-model="searchKey"></el-input>
+        </el-col>
+
+        &nbsp;&nbsp;&nbsp;
+        <el-button type="primary" @click="getRows">筛 选</el-button>
+
+        &nbsp;&nbsp;&nbsp;
+        <a href="../logisticsCo/exportExcel">
+            <el-button type="primary">导 出</el-button>
+        </a>
+
+        &nbsp;&nbsp;&nbsp;
+        <span style="font-size: 14px;color:#bfcbd9">关键字:编号/公司名称/公司简称/联系人/地址/简码</span>
+
+        <div class="num" style="white-space:nowrap;"> 共{{totalNumber}}标签</div>
+    </div>
+
+    <el-table :data="rows"
+              ref="table"
+              style="width: 100%"
+              element-loading-text="拼命加载中"
+              border
+              stripe
+              :height="tableMaxHeight"
+              v-loading="loading">
+        <%--<el-table-column
+            type="index"
+            width="70"
+            align="center">
+        </el-table-column>--%>
+        <el-table-column
+                label="状态"
+                width="80"
+                inline-template
+                align="center">
+            <el-switch
+                    :value="row.codelFlag==='0'"
+                    on-color="#13ce66"
+                    off-color="#ff4949"
+                    on-text="启用"
+                    off-text="停用"
+                    @change="updateCodeFlag(row)"
+            >
+            </el-switch>
+        </el-table-column>
+
+        <%--<el-table-column--%>
+        <%--prop="serialNo"--%>
+        <%--label="序号"--%>
+        <%--width="70"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                prop="numbering"
+                label="编号"
+                width="100"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="coName"
+                label="公司名称"
+                width="200"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="coAbb"
+                label="公司简称"
+                width="100"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="shortName"
+                label="简码"
+                width="100"
+                align="center">
+        </el-table-column>
+        <%--    <el-table-column
+                    prop="phone"
+                    label="联系方式"
+                    width="140"
+                    align="center">
+            </el-table-column>--%>
+        <el-table-column
+                prop="contacter"
+                label="联系人"
+                width="140"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="address"
+                label="地址"
+                align="center">
+        </el-table-column>
+        <el-table-column
+                prop="note"
+                label="备注"
+                align="center">
+        </el-table-column>
+        <el-table-column
+        <%--prop="photo"--%>
+                label="物流公司营业执照"
+                width="140"
+                align="center">
+            <template scope="scope">
+                <img class="singleImg" :src="scope.row.realphoto"
+                     @click="imgSrc=scope.row.realphoto,dialogVisible=true">
+            </template>
+        </el-table-column>
+        <el-table-column
+        <%--prop="HealthCertificate"--%>
+                label="特种行业准运证"
+                width="140"
+                align="center">
+            <template scope="scope">
+                <img class="singleImg" :src="scope.row.realSpecialPhoto"
+                     @click="imgSrc=scope.row.realSpecialPhoto,dialogVisible=true">
+            </template>
+        </el-table-column>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="departInfo.title"
+                label="隶属部门"
+                min-width="150"
+                align="center">
+        </el-table-column>
+        <%--  <el-table-column
+                  prop="codelFlag"
+                  label="状态"
+                  width="80"
+                  :formatter="codelFlagFormatter"
+                  align="center">
+          </el-table-column>--%>
+
+        <%--<el-table-column--%>
+        <%--prop="createdUser"--%>
+        <%--label="创建人"--%>
+        <%--width="100"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :show-overflow-tooltip="true"
+                prop="createdTime"
+                label="创建时间"
+                width="150"
+                align="center">
+        </el-table-column>
+        <%--<el-table-column--%>
+        <%--prop="modifiedUser"--%>
+        <%--label="modifiedUser"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="modifiedTime"--%>
+        <%--label="modifiedTime"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <%--<el-table-column--%>
+        <%--prop="delFlag"--%>
+        <%--label="delFlag"--%>
+        <%--align="center">--%>
+        <%--</el-table-column>--%>
+        <el-table-column
+                :context="_self"
+                width="150"
+                inline-template
+                label="操作"
+                fixed="right"
+                align="center">
+            <div>
+                <el-button size="small" @click="editRow(row)">编辑</el-button>
+                <%--<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>--%>
+            </div>
+        </el-table-column>
+    </el-table>
+    <div class="pagination-wrapper" v-show="!loading">
+        <el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+                       :page-size="pageSize"
+                       :current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+        </el-pagination>
+    </div>
+</template>
+<el-dialog v-model="dialogVisible" size="tiny">
+    <img width="100%" :src="imgSrc" alt=""/>
+</el-dialog>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+
+    new Vue({
+        el: '#app',
+        created: function () {
+            if (getQueryString('currentPage')) {
+                this.currentPage = parseInt(getQueryString('currentPage'));
+                this.pageSize = parseInt(getQueryString('pageSize'));
+            }
+            this.getRows();
+        },
+        computed: {
+            tableMaxHeight() {
+                var height = 600
+                //console.log(document.getElementById('contentBody').offsetHeight)
+                if (document.getElementById('contentBody')) {
+                    height = document.getElementById('contentBody').offsetHeight - 192
+                }
+                return height
+            }
+        },
+        data: function () {
+            return {
+                menu: '7',
+                menu2: '7-3',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                rows: [],
+                searchKey: '',
+                imgSrc: '',
+                dialogVisible: false
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            getRows: function () {
+                $.get({
+                    url: '../logisticsCo/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize,
+                        searchKey: this.searchKey,
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.rows = res.data.pp;
+                    }
+                }.bind(this))
+            },
+            pageChange: function (page) {
+                this.currentPage = page;
+                this.getRows();
+            },
+            sizeChange: function (size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getRows();
+            },
+            editRow: function (row) {
+                window.location = 'logisticsCo?id=' + row.id + "&currentPage=" + this.currentPage + "&pageSize=" + this.pageSize;
+            },
+            deleteRow: function (row) {
+                this.$confirm('确定要删除吗?', '提示', {
+                    confirmButtonText: '删除',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return $.post({
+                        url: '../logisticsCo/del',
+                        data: {
+                            id: row.id
+                        }
+                    })
+                }.bind(this)).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('删除成功');
+                        this.getRows();
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                }.bind(this)).catch(function () {
+
+                });
+            },
+            create: function () {
+                window.location = 'logisticsCo';
+            },
+            codelFlagFormatter: function (row) {
+
+                var valueStr = '';
+                switch (row.codelFlag) {
+                    case '0':
+                        valueStr = '启用';
+                        break;
+                    case '1':
+                        valueStr = '停用';
+                        break
+                }
+
+                return valueStr;
+
+            },
+            updateCodeFlag: function (row) {
+
+                if (row.codelFlag === '0') {
+                    row.codelFlag = '1';
+                } else {
+                    row.codelFlag = '0';
+                }
+
+                $.post({
+                    url: '../logisticsCo/update',
+                    data: {
+                        id: row.id,
+                        codelFlag: row.codelFlag
+                    }
+                }).then(function (res) {
+                    if (res.success) {
+                        this.$message.success('保存成功');
+                        //this.getRows();
+                    } else {
+                        this.$message.error('保存失败');
+                    }
+                }.bind(this))
+
+            },
+            download: function () {
+                window.open(this.imgSrc)
+            }
+        }
+    })
+</script>
+</html>
+

+ 117 - 0
Web/WEB-INF/jsp/newAdmin/logisticscoPlan.jsp

@@ -0,0 +1,117 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="handoverno">
+			<el-input v-model="row_info.handoverno"></el-input>
+		</el-form-item>
+		<el-form-item label="carplate">
+			<el-input v-model="row_info.carplate"></el-input>
+		</el-form-item>
+		<el-form-item label="driverId">
+			<el-input v-model="row_info.driverId"></el-input>
+		</el-form-item>
+		<el-form-item label="delFlag">
+			<el-input v-model="row_info.delFlag"></el-input>
+		</el-form-item>
+		<el-form-item label="createdUser">
+			<el-input v-model="row_info.createdUser"></el-input>
+		</el-form-item>
+		<el-form-item label="createdTime">
+			<el-input v-model="row_info.createdTime"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedUser">
+			<el-input v-model="row_info.modifiedUser"></el-input>
+		</el-form-item>
+		<el-form-item label="modifiedTime">
+			<el-input v-model="row_info.modifiedTime"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../logisticscoPlan/getLogisticscoPlan',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../logisticscoPlan/update' : '../logisticscoPlan/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

+ 186 - 0
Web/WEB-INF/jsp/newAdmin/logisticscoPlans.jsp

@@ -0,0 +1,186 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<template>
+	<div class="filters">
+		<el-button type="primary" @click="create()">创建</el-button>
+		<div class="num"> 共{{totalNumber}}标签</div>
+	</div>
+
+	<el-table :data="rows"
+			ref="table"
+			style="width: 100%"
+			element-loading-text="拼命加载中"
+			  border
+			  stripe
+			v-loading="loading">
+			<%--<el-table-column--%>
+				<%--type="index"--%>
+				<%--width="70"--%>
+				<%--align="center">--%>
+			<%--</el-table-column>--%>
+		<el-table-column
+				prop="handoverno"
+				label="handoverno"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="carplate"
+				label="carplate"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="driverId"
+				label="driverId"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="delFlag"
+				label="delFlag"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdUser"
+				label="createdUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="createdTime"
+				label="createdTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedUser"
+				label="modifiedUser"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				prop="modifiedTime"
+				label="modifiedTime"
+				align="center">
+		</el-table-column>
+		<el-table-column
+				:context="_self"
+				width="150"
+				inline-template
+				label="操作"
+				align="center">
+			<div>
+				<el-button size="small" @click="editRow(row)">编辑</el-button>
+				<el-button size="small" type="danger" @click="deleteRow(row)">删除</el-button>
+			</div>
+		</el-table-column>
+	</el-table>
+	<div class="pagination-wrapper" v-show="!loading">
+		<el-pagination layout="sizes, prev, pager, next" :page-size="pageSize" :total="totalNumber"
+					:page-size="pageSize"
+					:current-page="currentPage" @current-change="pageChange" @size-change="sizeChange">
+		</el-pagination>
+	</div>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			this.getRows();
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				totalNumber: 0,
+				totalPage: 10,
+				currentPage: 1,
+				pageSize: 20,
+				rows: []
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			getRows: function () {
+				$.get({
+					url: '../logisticscoPlan/page',
+					data: {
+						currentPage: this.currentPage,
+						pageNumber: this.pageSize
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.totalNumber = res.data.page.totalNumber;
+						this.rows = res.data.pp;
+					}
+				}.bind(this))
+			},
+			pageChange: function (page) {
+				this.currentPage = page;
+				this.getRows();
+			},
+			sizeChange: function (size) {
+                this.currentPage = 1;
+				this.pageSize = size;
+				this.getRows();
+			},
+			editRow: function (row) {
+				window.location = 'logisticscoPlan?id=' + row.id;
+			},
+			deleteRow: function (row) {
+				this.$confirm('确定要删除吗?', '提示', {
+					confirmButtonText: '删除',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(function () {
+					return $.post({
+						url: '../logisticscoPlan/del',
+						data: {
+							id: row.id
+						}
+					})
+				}.bind(this)).then(function (res) {
+					if (res.success) {
+						this.$message.success('删除成功');
+						this.getRows();
+					} else {
+						this.$message.error('删除失败');
+					}
+				}.bind(this)).catch(function () {
+
+				});
+			},
+			create: function () {
+				window.location = 'logisticscoPlan';
+			}
+		}
+	})
+</script>
+</html>
+

+ 1016 - 0
Web/WEB-INF/jsp/newAdmin/map.jsp

@@ -0,0 +1,1016 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2017-11-14
+  Time: 14:15
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<!DOCTYPE html>
+<html>
+<head>
+
+    <jsp:include page="head.jsp"/>
+    <title>在线监控</title>
+    <script type="text/javascript"
+            src="http://api.map.baidu.com/api?v=2.0&ak=UuWIpT4YihyTDf5kuzWMR8b8iybqOe8Q"></script>
+
+    <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
+
+    <meta name="viewport"
+          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+
+    <script type="text/javascript"
+            src="${pageContext.request.contextPath}/js/chart.js"></script>
+
+    <style type="text/css">
+        html, body {
+            width: 100%;
+            height: 100%;
+        }
+
+        * {
+            margin: 0px;
+            padding: 0px;
+        }
+
+        body, button, input, select, textarea {
+            font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
+        }
+
+        p {
+            width: 603px;
+            padding-top: 3px;
+            overflow: hidden;
+        }
+
+        .btn {
+            width: 142px;
+        }
+
+        #allmap {
+            min-width: 600px;
+            min-height: 767px;
+            width: 100%;
+            height: 100%;
+            flex-grow: 1;
+        }
+
+        .btn-list {
+            position: absolute;
+            z-index: 999;
+            top: 10px;
+            left: 100px;
+        }
+
+        #app {
+            display: flex;
+            flex-direction: column;
+            height: 100%;
+        }
+
+        .logo {
+            display: flex;
+            align-items: center;
+        }
+
+        #left {
+            width: 295px;
+            background-color: #F7F9FA;
+            padding: 0 20px 20px;
+            z-index: 1000;
+            /*height: 100%;*/
+            overflow: scroll;
+        }
+
+        #left > .title {
+            font-size: 24px;
+            font-weight: bold;
+            line-height: 33px;
+            margin-top: 20px;
+            margin-bottom: 17px;
+            color: #000;
+        }
+
+        #left .item {
+            display: flex;
+            align-items: flex-start;
+            justify-content: space-between;
+            margin-bottom: 15px;
+            line-height: 20px;
+        }
+
+        #left .item > .itemTitle {
+            font-size: 14px;
+            color: #000;
+            font-weight: bold;
+        }
+
+        #left .item > .itemVal {
+            font-size: 14px;
+            color: #000;
+            font-weight: bold;
+            max-width: 180px;
+            text-align: right;
+        }
+
+        #left hr {
+            height: 1px;
+            background-color: #ccc;
+            margin-bottom: 15px;
+            border: none;
+        }
+
+        #left .content {
+            background-color: #fff;
+            border-radius: 3px;
+            margin-top: 10px;
+            padding: 15px 10px 0;
+            overflow: hidden;
+        }
+
+        .db-body {
+            /*margin-top: 90px;*/
+            display: flex;
+            align-items: stretch;
+            flex-grow: 1;
+        }
+
+        .mapContent {
+            flex-grow: 1;
+            position: relative;
+        }
+
+        .db .db-header {
+            position: relative;
+        }
+
+        ::-webkit-scrollbar {
+            width: 0px;
+            height: 1px;
+        }
+
+        ::-webkit-scrollbar-thumb {
+            border-radius: 5px;
+            -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+            background: rgba(0, 0, 0, 0.2);
+        }
+
+        #chart {
+            position: absolute;
+            top: 50%;
+            left: 50%;
+            z-index: 999;
+            width: 600px;
+            height: 320px;
+            background-color: #fff;
+            border-radius: 6px;
+            display: flex;
+            flex-direction: column;
+            overflow: hidden;
+            -webkit-transform: translate(-50%, -50%);
+            -moz-transform: translate(-50%, -50%);
+            -ms-transform: translate(-50%, -50%);
+            -o-transform: translate(-50%, -50%);
+            transform: translate(-50%, -50%);
+        }
+
+        #chart > .top {
+            display: flex;
+            background: linear-gradient(90deg, #1DA4DE, #2FACE9);
+            height: 54px;
+            align-items: center;
+            color: #fff;
+            font-weight: bold;
+            justify-content: space-between;
+            padding: 0 18px;
+        }
+
+        #chart > .top > div {
+            font-size: 14px;
+        }
+
+        #chart > .top > div > span {
+            font-size: 18px;
+
+        }
+
+        #chart > .top > .qiu {
+            width: 30px;
+            height: 30px;
+            border-radius: 100%;
+            background-color: #fff;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            cursor: pointer;
+        }
+
+        #chart > .top > .qiu > img {
+            width: 10px;
+            height: 10px;
+        }
+
+        #chart > .content {
+            flex-grow: 1;
+            padding: 0 10px 10px;
+            display: flex;
+            align-items: flex-end;
+        }
+
+        #chart > .content > img {
+            width: 100%;
+        }
+
+    </style>
+    <%--<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp"></script>--%>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="db-body">
+    <template>
+        <div class="left" id="left" v-if="isShow">
+            <img src="" alt="">
+            <div class="title">
+                {{info[type]}}信息
+            </div>
+            <div v-if="type==1">
+                <div v-if="nowInfo.pastureFullname" class="item">
+                    <div class="itemTitle"> {{info[type]}}全称</div>
+                    <div class="itemVal">{{nowInfo.pastureFullname}}</div>
+                </div>
+                <div v-if="nowInfo.pastureAbbreviation" class="item">
+                    <div class="itemTitle"> {{info[type]}}简称</div>
+                    <div class="itemVal">{{nowInfo.pastureAbbreviation}}</div>
+                </div>
+                <div v-if="nowInfo.address" class="item">
+                    <div class="itemTitle"> 地址</div>
+                    <div class="itemVal">{{nowInfo.address}}</div>
+                </div>
+                <div v-if="nowInfo.numbering" class="item">
+                    <div class="itemTitle"> {{info[type]}}代码</div>
+                    <div class="itemVal">{{nowInfo.numbering}}</div>
+                </div>
+                <div v-if="nowInfo.beneficiaries" class="item">
+                    <div class="itemTitle"> 法人</div>
+                    <div class="itemVal">{{nowInfo.beneficiaries}}</div>
+                </div>
+
+                <div v-if="nowInfo.phone" class="item">
+                    <div class="itemTitle"> 联系方式</div>
+                    <div class="itemVal">{{nowInfo.phone}}</div>
+                </div>
+
+                <hr/>
+                <div class="item">
+                    <div class="itemTitle"> 奶仓数量</div>
+                    <div class="itemVal">{{nowInfo.miktankNo}}</div>
+                </div>
+                <div class="item">
+                    <div class="itemTitle"> 奶牛总数</div>
+                    <div class="itemVal">{{nowInfo.cowstotalNo}}头</div>
+                </div>
+                <div class="item">
+                    <div class="itemTitle"> 日产量</div>
+                    <div class="itemVal">{{nowInfo.dayield}}kg</div>
+                </div>
+                <div v-if="nowInfo.refrigstyle" class="item">
+                    <div class="itemTitle"> 制冷方式</div>
+                    <div class="itemVal">{{nowInfo.refrigstyle}}</div>
+                </div>
+                <div v-if="nowInfo.waterfrom" class="item">
+                    <div class="itemTitle">生产用水来源</div>
+                    <div class="itemVal">{{nowInfo.waterfrom}}</div>
+                </div>
+            </div>
+            <div v-if="type==2">
+                <div v-if="nowInfo.factoryFullname" class="item">
+                    <div class="itemTitle"> {{info[type]}}全称</div>
+                    <div class="itemVal">{{nowInfo.factoryFullname}}</div>
+                </div>
+                <div v-if="nowInfo.address" class="item">
+                    <div class="itemTitle"> 地址</div>
+                    <div class="itemVal">{{nowInfo.address}}</div>
+                </div>
+                <div v-if="nowInfo.numbering" class="item">
+                    <div class="itemTitle"> {{info[type]}}代码</div>
+                    <div class="itemVal">{{nowInfo.numbering}}</div>
+                </div>
+                <div v-if="nowInfo.phone" class="item">
+                    <div class="itemTitle"> 联系方式</div>
+                    <div class="itemVal">{{nowInfo.phone}}</div>
+                </div>
+                <div v-if="nowInfo.zipCode" class="item">
+                    <div class="itemTitle"> 邮编</div>
+                    <div class="itemVal">{{nowInfo.zipCode}}</div>
+                </div>
+
+                <hr/>
+
+                <div class="item">
+                    <div class="itemTitle"> 奶线数量</div>
+                    <div class="itemVal">{{nowInfo.miktankNo}}</div>
+                </div>
+                <%--<div  class="item">--%>
+                <%--<div class="itemTitle"> 奶线编号</div>--%>
+                <%--<div class="itemVal">{{nowInfo.miktankNumber}}</div>--%>
+                <%--</div>--%>
+                <div v-if="milkCapacity" class="item">
+                    <div class="itemTitle"> 奶线容量</div>
+                    <div class="itemVal">{{nowInfo.milkCapacity}}</div>
+                </div>
+
+            </div>
+            <div v-if="type==3">
+                <div class="content">
+                    <div v-if="nowInfo.handoverno" class="item">
+                        <div class="itemTitle"> 交接单号</div>
+                        <div class="itemVal">{{nowInfo.handoverno}}</div>
+                    </div>
+                    <div v-if="nowInfo.driverInfo" class="item">
+                        <div class="itemTitle"> 驾驶员</div>
+                        <div class="itemVal">{{nowInfo.driverInfo.driver}}</div>
+                    </div>
+                    <div v-if="nowInfo.supplierdemandPlan" class="item">
+                        <div class="itemTitle"> 物流单位</div>
+                        <div class="itemVal">{{nowInfo.supplierdemandPlan.logstico}}</div>
+                    </div>
+                    <div v-if="nowInfo.carplate" class="item">
+                        <div class="itemTitle"> 车牌号码</div>
+                        <div class="itemVal">{{nowInfo.carplate}}</div>
+                    </div>
+                    <div v-if="nowInfo.driverInfo" class="item">
+                        <div class="itemTitle"> 司机编号</div>
+                        <div class="itemVal">{{nowInfo.driverInfo.driverId}}</div>
+                    </div>
+                </div>
+
+                <div class="content" v-if="nowInfo.supplierIntime">
+                    <div v-if="nowInfo.supplierIntime" class="item">
+                        <div class="itemTitle"> 进入牧场时间</div>
+                        <div class="itemVal">{{nowInfo.supplierIntime}}</div>
+                    </div>
+
+                    <div v-if="nowInfo.weightInfos.length>0" class="item">
+                        <div class="itemTitle"> 车辆皮重</div>
+                        <div class="itemVal">{{nowInfo.weightInfos[0].weightcount}}kg</div>
+                    </div>
+                </div>
+
+                <div class="content" v-if="nowInfo.milkCylinders.length>0">
+                    <div class="item">
+                        <div class="itemTitle">装奶信息</div>
+                    </div>
+                    <hr/>
+                    <div v-for="(item,index) in nowInfo.milkCylinders">
+                        <div class="item">
+                            <div class="itemTitle"> 装奶号{{index+1}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 仓口清洗铅封号</div>
+                            <div class="itemVal">{{item.cansealupCipNum}}-{{item.cansealupCipNumQr}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 槽口清洗铅封号</div>
+                            <div class="itemVal">{{item.cansealnum}}-{{item.cansealnumQr}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 奶仓号</div>
+                            <div class="itemVal">{{item.milkcarupCylinderno}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 奶槽号</div>
+                            <div class="itemVal">{{item.milkcarCylinderno}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 缸口温度</div>
+                            <div class="itemVal">{{item.cylindert}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"></div>
+                            <div class="itemVal" @click="showNowWendu" style="color:#ff9500;cursor: pointer">点击查看实时温度
+                            </div>
+                        </div>
+                        <div class="item" v-if="item.demonum">
+                            <div class="itemTitle"> 随车样</div>
+                            <div class="itemVal">{{item.demonum}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 仓口铅封号</div>
+                            <div class="itemVal">{{item.cansealupNum}}-{{item.cansealupNumQr}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 槽口铅封号</div>
+                            <div class="itemVal">{{item.cansealnum}}-{{item.cansealnumQr}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 槽车奶槽是否装满</div>
+                            <div class="itemVal">{{item.cylinderdelFlag?'是':'否'}}</div>
+                        </div>
+                        <hr v-if="index!=nowInfo.milkCylinders.length-1">
+                    </div>
+
+                </div>
+
+                <div class="content" v-if="nowInfo.supplierOuttime">
+                    <div v-if="nowInfo.supplierOuttime" class="item">
+                        <div class="itemTitle"> 离开牧场时间</div>
+                        <div class="itemVal">{{nowInfo.supplierOuttime}}</div>
+                    </div>
+
+                    <div v-if="nowInfo.weightInfos.length>1" class="item">
+                        <div class="itemTitle"> 车辆毛重</div>
+                        <div class="itemVal">{{nowInfo.weightInfos[1].weightcount}}kg</div>
+                    </div>
+                </div>
+                <div class="content" v-if="nowInfo.factorymilkTanks.length>0">
+                    <div class="item">
+                        <div class="itemTitle">收奶信息</div>
+                    </div>
+                    <hr/>
+                    <div v-for="(item,index) in nowInfo.factorymilkTanks">
+                        <div class="item">
+                            <div class="itemTitle"> 奶槽号</div>
+                            <div class="itemVal">{{item.milkcarCylinderno}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 收奶线号</div>
+                            <div class="itemVal">{{item.factoryMilkbarn}}</div>
+                        </div>
+                        <div class="item">
+                            <div class="itemTitle"> 收奶状态</div>
+                            <div class="itemVal">{{item.milkStartime?(item.milkEndtime?'收奶结束':'收奶中'):'未收奶'}}</div>
+                        </div>
+                    </div>
+                </div>
+
+
+            </div>
+
+        </div>
+    </template>
+    <%--<!--   定义地图显示容器   -->--%>
+    <div class="mapContent">
+        <div id="allmap">
+            <template>
+
+            </template>
+        </div>
+        <div class="btn-list">
+            <el-button :type="isSupplier?'primary':'normal'" @click="show(1)">显示牧场</el-button>
+            <el-button :type="isFactory?'primary':'normal'" @click="show(2)">显示工厂</el-button>
+            <el-button :type="isCar?'primary':'normal'" @click="show(3)">显示车辆</el-button>
+
+
+        </div>
+    </div>
+
+    <template>
+        <div id="chart" v-if="isChart">
+            <div class="top">
+                <div style="margin-left: 42px;">当前温度:<span>2.9℃</span></div>
+                <div>装奶时温度:<span>2.9℃</span></div>
+                <div>历史最高温度:<span>3℃</span></div>
+                <div class="qiu" @click="hideChart()"><img
+                        src="${pageContext.request.contextPath}/images/iocn_close@3x.png" alt=""></div>
+            </div>
+            <div class="content">
+                <img src="${pageContext.request.contextPath}/images/chart.png" alt="">
+            </div>
+        </div>
+    </template>
+
+    <jsp:include page="contentAfter.jsp"/>
+</body>
+
+<script type="text/javascript">
+
+    var factoryInfo =${factoryInfo};
+    var supplierInfo =${supplierInfo};
+    var carGps =${carGps};
+    factoryInfo = factoryInfo[0].data;
+    supplierInfo = supplierInfo[0].data;
+    carGps = carGps[0].data;
+    console.log(factoryInfo);
+    console.log(supplierInfo);
+    console.log(carGps);
+
+    function change(lat, lng) {
+        var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
+        var x = parseFloat(lng);
+        var y = parseFloat(lat);
+        var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
+        var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
+        lng = z * Math.cos(theta) + 0.0065;
+        lat = z * Math.sin(theta) + 0.006;
+        var html = {
+            lng: lng,
+            lat: lat
+        };
+        return html
+    }
+
+</script>
+<script>
+    function ComplexCustomOverlay(data) {
+        var point = change(data.lat, data.lng);
+        this._point = new BMap.Point(point.lng, point.lat);
+        this._data = data;
+    }
+
+
+    var app = new Vue({
+        el: '#app',
+        created: function () {
+            for (var i = 0; i < supplierInfo.length; i++) {
+                var html = {};
+                html.lat = supplierInfo[i].latitude;
+                html.lng = supplierInfo[i].longitude;
+                html.icon = '${pageContext.request.contextPath}/images/icon_muchang.png';
+                html.type = '1';
+                html.id = supplierInfo[i].id;
+                html.name=supplierInfo[i].pastureAbbreviation;
+                this.list.push(html)
+            }
+            for (var i = 0; i < factoryInfo.length; i++) {
+                var html = {};
+                html.lat = factoryInfo[i].latitude;
+                html.lng = factoryInfo[i].longitude;
+                html.icon = '${pageContext.request.contextPath}/images/icon_gongchang.png';
+                html.type = '2';
+                html.id = factoryInfo[i].id;
+                html.name=factoryInfo[i].factoryAbbreviation;
+                this.list.push(html)
+            }
+            for (var i = 0; i < carGps.length; i++) {
+                if (carGps[i].carGps.length > 0) {
+                    var html = {};
+                    html.lat = carGps[i].carGps[0].latitude;
+                    html.lng = carGps[i].carGps[0].longitude;
+                    html.icon = '${pageContext.request.contextPath}/images/icon_che.png';
+                    html.type = '3';
+                    html.id = carGps[i].handoverno;
+                    html.name=carGps[i].carplate;
+                    this.list.push(html);
+
+//                    this.lines.push(lines)
+                }
+
+            }
+        },
+        mounted: function () {
+            this.draw();
+        },
+        data: function () {
+            return {
+                menu: '5',
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                mp: null,
+                loading: false,
+                edit: false,
+                tab: 1,
+                row_info: {},
+                isFactory: true,
+                isSupplier: true,
+                isCar: true,
+                isShow: false,
+                type: 0,
+                info: ['', '牧场', '工厂', '车辆'],
+                list: [],
+                lines: [],
+                nowInfo: {},
+                nowId: 0,
+                ctx: null,
+                polyline:null,
+                polyline2:null,
+                chartLine: {
+                    labels: ["January", "February", "March", "April", "May", "June", "July"],
+                    datasets: [
+                        {
+                            fillColor: "rgba(220,220,220,0.5)",
+                            strokeColor: "rgba(220,220,220,1)",
+                            pointColor: "rgba(220,220,220,1)",
+                            pointStrokeColor: "#fff",
+                            data: [65, 59, 90, 81, 56, 55, 40]
+                        },
+                        {
+                            fillColor: "rgba(151,187,205,0.5)",
+                            strokeColor: "rgba(151,187,205,1)",
+                            pointColor: "rgba(151,187,205,1)",
+                            pointStrokeColor: "#fff",
+                            data: [28, 48, 40, 19, 96, 27, 100]
+                        }
+                    ]
+                },
+                isChart: false,
+                sy:null,
+                colors: ['#83C337', '#CE60B8', '#6D8CF1', '#6AA2E7', '#007374', '#CC2500'],
+                icons:null,
+            };
+        },
+        methods: {
+            draw: function () {
+                // 百度地图API功能
+                this.mp = new BMap.Map("allmap", {minZoom: 8, maxZoom: 15});
+                this.mp.centerAndZoom(new BMap.Point(114.517622,38.05002), 10);
+                this.mp.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
+                this.mp.panBy(300,0);
+                var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_RIGHT});// 右上角,添加比例尺
+                var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
+                var overViewOpen = new BMap.OverviewMapControl({isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT});
+                this.mp.addControl(top_left_control);
+                this.mp.addControl(top_left_navigation);
+                this.mp.addControl(overViewOpen);
+
+                // 复杂的自定义覆盖物
+
+                var vm = this;
+
+                ComplexCustomOverlay.prototype = new BMap.Overlay();
+                ComplexCustomOverlay.prototype.initialize = function (map) {
+                    this._map = map;
+                    var div = this._div = document.createElement("div");
+                    div.className = "map-overlay-" + this._data.type;
+                    div.id = 'map-' + this._data.type + '-' + this._data.id;
+                    div.style.position = "absolute";
+//                div.style.width = 40+'px';
+//                div.style.height = 48+'px';
+                    div.style.zIndex = BMap.Overlay.getZIndex(this._point.lat);
+                    div.style.MozUserSelect = "none";
+                    var icon = document.createElement("img");
+                    icon.className = "icon";
+                    icon.src = this._data.icon;
+                    icon.style.width = 40+'px';
+                    icon.style.height = 48+'px';
+                    icon.style.marginLeft=-20+'px';
+                    icon.style.marginTop=-45+'px';
+                    icon.style.display = "block";
+                    icon.style.borderRadius = "28px";
+                    div.appendChild(icon);
+
+//
+                    var that = this;
+                    div.onclick = function () {
+                        vm.showDetail(that._data.id, that._data.type, that._data)
+                    };
+
+                    div.onmouseenter=function () {
+                        console.log(icon.style.height)
+                        if(icon.style.height=='48px'){
+                            var divText=document.createElement("div");
+                            divText.style.width=150+'px';
+                            divText.style.height=30+'px';
+                            divText.style.borderRadius=30+'px';
+                            divText.style.position='absolute';
+                            divText.style.left='0';
+                            divText.style.textAlign='center';
+                            divText.style.backgroundColor='#fff';
+                            divText.style.color='#22A6E1';
+                            divText.style.fontSize='18px';
+                            divText.style.fontWeight='bold';
+                            divText.style.lineHeight=30+'px';
+                            divText.style.top='-78px';
+                            divText.innerText=that._data.name;
+                            div.appendChild(divText);
+                        }
+
+                    }
+
+                    div.onmouseleave=function () {
+                        if(div.children.length>1){
+                           for(var i=1;i<div.children.length;i++){
+                               div.removeChild(div.children[i])
+                           }
+                        }
+
+                    }
+//
+//                div.onmouseout = function(){
+//                    this.style.backgroundColor = "#EE5D5B";
+//                    this.style.borderColor = "#BC3B3A";
+//                    this.getElementsByTagName("span")[0].innerHTML = that._text;
+//                    arrow.style.backgroundPosition = "0px 0px";
+//                }
+
+                    vm.mp.getPanes().labelPane.appendChild(div);
+
+                    return div;
+                };
+                ComplexCustomOverlay.prototype.draw = function () {
+                    var map = this._map;
+                    var pixel = map.pointToOverlayPixel(this._point);
+                    var divStyle = this._div.style;
+                    divStyle.left = pixel.x+ "px";
+                    divStyle.top = pixel.y + "px";
+                };
+
+                this.mp.addEventListener("click", this.showInfo);
+
+
+                var myCompOverlay = new ComplexCustomOverlay(this.list[0]);
+//            this.mp.addOverlay(myCompOverlay);
+                console.log(this.list);
+                for (var i = 0; i < this.list.length; i++) {
+                    var myCompOverlay = new ComplexCustomOverlay(this.list[i]);
+                    this.mp.addOverlay(myCompOverlay);
+                }
+
+
+// 创建polyline对象
+
+
+//
+
+                //增加折线
+
+//
+////
+//            this.mp.addOverlay(polyline);          //增加折线
+
+//
+//            //折线图
+//            //Get context with jQuery - using jQuery's .get() method.
+//            this.ctx = $("#myChart").get(0).getContext("2d");
+//
+//            new Chart(this.ctx).Line(this.data,options);
+            },
+            drawLine: function (lines,lines2) {
+                var pois = [
+                    new BMap.Point(121.88413, 31.13633),
+                    new BMap.Point(121.616219, 31.214436),
+                    new BMap.Point(121.286793, 31.240622),
+                    new BMap.Point(121.090171, 31.177369)
+                ];
+                this.sy = new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, {
+                    scale: 0.6,//图标缩放大小
+                    strokeColor: '#fff',//设置矢量图标的线填充颜色
+                    strokeWeight: '2',//设置线宽
+
+                });
+                this.icons = [new BMap.IconSequence(this.sy, '10', '30')];
+                if(lines.length>1&&lines2.length>1){
+                    lines.push(lines2[0])
+                }
+
+                this.polyline = new BMap.Polyline(lines, {
+                    enableEditing: false,//是否启用线编辑,默认为false
+                    enableClicking: false,//是否响应点击事件,默认为true
+                    icons: this.icons,
+                    strokeWeight: '8',//折线的宽度,以像素为单位
+                    strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1
+                    strokeColor: "#18a45b" //折线颜色
+                });
+
+                this.polyline2 = new BMap.Polyline(lines2, {
+                    enableEditing: false,//是否启用线编辑,默认为false
+                    enableClicking: false,//是否响应点击事件,默认为true
+                    icons: this.icons,
+                    strokeWeight: '8',//折线的宽度,以像素为单位
+                    strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1
+                    strokeColor: "#25A7E3" //折线颜色
+                });
+                var vm = this;
+                vm.mp.addOverlay( this.polyline);
+                vm.mp.addOverlay( this.polyline2);
+            },
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                var data = JSON.parse(JSON.stringify(this.row_info));
+                $.post({
+                    url: this.edit ? '../factoryInfo/update' : '../factoryInfo/save',
+                    data: data
+                }).then(function (res) {
+                    if (res.success) {
+                        if (!this.edit) {
+                            this.row_info.id = res.data;
+                        }
+                        this.edit = true;
+                        this.$message.success(this.edit ? '保存成功' : '创建成功');
+                    } else {
+                        this.$message.error(this.edit ? '保存失败' : '创建失败');
+                    }
+                }.bind(this))
+            },
+            show: function (type) {
+                switch (type) {
+                    case 1:
+                        if (this.isSupplier) {
+                            this.isSupplier = false;
+                            $(".map-overlay-1").hide()
+                        }
+                        else {
+                            this.isSupplier = true;
+                            $(".map-overlay-1").show()
+                        }
+                        break;
+                    case 2:
+                        if (this.isFactory) {
+                            this.isFactory = false;
+                            $(".map-overlay-2").hide()
+                        }
+                        else {
+                            this.isFactory = true;
+                            $(".map-overlay-2").show()
+                        }
+                        break;
+                    case 3:
+                        if (this.isCar) {
+                            this.isCar = false;
+                            $(".map-overlay-3").hide()
+                        }
+                        else {
+                            this.isCar = true;
+                            $(".map-overlay-3").show()
+                        }
+                        break;
+
+                }
+            },
+            showDetail: function (id, type, data) {
+                this.showInfo();
+
+                this.type = type;
+                this.nowId = id;
+                var vm = this;
+                if (type == 1) {
+                    $.get({
+                        url: '../supplierInfo/getSupplierInfo',
+                        data: {
+                            id: id
+                        }
+                    }).then(function (res) {
+                        console.log(res);
+                        if (res.success) {
+                            vm.isShow = true;
+                            vm.nowInfo = res.data;
+                            $("#map-" + type + '-' + id).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_muchang_pre.png');
+                            $("#map-" + type + '-' + id).children('img').css({
+                                'width': '60px',
+                                'height': '72px',
+                                'marginLeft':'-30px',
+                                'marginTop':'-68px'
+                            });
+                            vm.mp.panTo(new BMap.Point(data.lng, data.lat));
+                        }
+                    }.bind(this));
+                } else if (type == 2) {
+                    $.get({
+                        url: '../factoryInfo/getFactoryInfo',
+                        data: {
+                            id: id
+                        }
+                    }).then(function (res) {
+                        console.log(res);
+                        if (res.success) {
+                            vm.isShow = true;
+                            vm.nowInfo = res.data;
+                            $("#map-" + type + '-' + id).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_gongchang_pre.png');
+                            $("#map-" + type + '-' + id).children('img').css({
+                                'width': '60px',
+                                'height': '72px',
+                                'marginLeft':'-30px',
+                                'marginTop':'-68px'
+                            });
+
+                            vm.mp.panTo(new BMap.Point(data.lng, data.lat));
+                        }
+                    }.bind(this));
+                }
+                else if (type == 3) {
+                    $.get({
+                        url: '../supplierdemandPlan/detail',
+                        data: {
+                            handoverno: id
+                        }
+                    }).then(function (res) {
+                        console.log(res);
+                        if (res.success) {
+                            vm.isShow = true;
+                            vm.nowInfo = res.data;
+                            $("#map-" + type + '-' + id).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_cheliang_pre.png');
+                            $("#map-" + type + '-' + id).children('img').css({
+                                'width': '60px',
+                                'height': '72px',
+                                'marginLeft':'-30px',
+                                'marginTop':'-68px'
+                            });
+
+                            vm.mp.panTo(new BMap.Point(data.lng, data.lat));
+                        }
+                    }.bind(this));
+                    $.get({
+                        url: '../carGps/getCarGpsByHandOver',
+                        data: {
+                            handOverNo: id
+                        }
+                    }).then(function (res) {
+                        console.log(res);
+                        if (res.success) {
+                            var items=res.data.line
+                            var lines = [];
+                            var lines2=[]
+                            var preLine = null;
+                            for (var i = 0; i < items.length; i++) {
+                                var point = change(items[i].latitude, items[i].longitude);
+                                var state=parseInt(items[i].handoverStatus)
+                                if (preLine) {
+                                    if (point.lat > 20) {
+                                        var now_point = new BMap.Point(point.lng, point.lat);
+                                        var long = BMapLib.GeoUtils.getDistance(now_point, preLine);
+                                        if (long > 100) {
+//                                    lines.push(new BMap.Point(point.lng, point.lat));
+                                            if(state<=6){
+                                                lines.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                                            }
+                                            else{
+                                                lines2.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                                            }
+
+                                            preLine = new BMap.Point(point.lng, point.lat)
+                                        }
+                                    }
+
+                                }
+
+
+                                else {
+                                    if (point.lat > 20) {
+//                                lines.push(new BMap.Point(point.lng, point.lat));
+//                                         lines.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                                        if(state<=6){
+                                            lines.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                                        }
+                                        else{
+                                            lines2.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                                        }
+                                        preLine = new BMap.Point(point.lng, point.lat)
+                                    }
+                                }
+
+
+                            }
+
+                            vm.drawLine(lines,lines2)
+
+                        }
+                    }.bind(this));
+                }
+            },
+            showInfo: function () {
+                this.hideChart();
+                var vm = this;
+                vm.isShow = false;
+                if (vm.type == 2) {
+                    $("#map-" + vm.type + '-' + vm.nowId).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_gongchang.png')
+                }
+                else if (vm.type == 1) {
+                    $("#map-" + vm.type + '-' + vm.nowId).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_muchang.png')
+                } else if (vm.type == 3) {
+                    $("#map-" + vm.type + '-' + vm.nowId).children('img').attr('src', '${pageContext.request.contextPath}/images/icon_che.png')
+                }
+                $("#map-" + vm.type + '-' + vm.nowId).children('img').css({
+                    'width': '40px',
+                    'height': '48px',
+                    'marginLeft':'-20px',
+                    'marginTop':'-45px'
+                })
+                for(var i=0;i<this.mp.getOverlays().length;i++){
+                    console.log(this.mp.getOverlays()[i].constructor.name)
+                    if(this.mp.getOverlays()[i].constructor.name=='T'){
+                        this.mp.removeOverlay(this.mp.getOverlays()[i])
+                        i--
+                    }
+                }
+                console.log(this.mp.getOverlays())
+                this.mp.removeOverlay(this.polyline)
+                this.mp.removeOverlay(this.polyline2)
+
+
+            },
+            showNowWendu: function () {
+                console.log('aaaa');
+                this.isChart = true
+            },
+            hideChart: function () {
+                this.isChart = false
+            }
+        }
+    })
+</script>
+</html>

+ 522 - 0
Web/WEB-INF/jsp/newAdmin/mapper.jsp

@@ -0,0 +1,522 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+    <title>地图追踪</title>
+    <meta name="viewport"
+          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+    <style type="text/css">
+        html, body {
+            width: 100%;
+            height: 100%;
+        }
+
+        * {
+            margin: 0px;
+            padding: 0px;
+        }
+
+        body, button, input, select, textarea {
+            font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
+        }
+
+        p {
+            width: 603px;
+            padding-top: 3px;
+            overflow: hidden;
+        }
+
+        .btn {
+            width: 142px;
+        }
+
+        #container {
+            min-width: 600px;
+            min-height: 767px;
+            width: 100%;
+            height: 100%;
+            position: relative;
+        }
+
+        .db-content-wrapper {
+            position: relative;
+        }
+
+        .btn-fixed {
+            position: absolute;
+            top: 30px;
+            left: 100px;
+            z-index: 500;
+        }
+    </style>
+    <script type="text/javascript"
+            src="http://api.map.baidu.com/api?v=2.0&ak=UuWIpT4YihyTDf5kuzWMR8b8iybqOe8Q"></script>
+
+    <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
+
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="db-body">
+
+    <template>
+        <aside class="db-menu-wrapper">
+            <el-menu :default-active="menu2" class="db-menu-bar" unique-opened>
+
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos">
+                    <el-menu-item index="0-1">全部交接单</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-1">
+                    <el-menu-item index="-1">待调度</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=1">
+                    <el-menu-item index="1">运输中</el-menu-item>
+                </a>
+                <el-submenu index="2">
+                    <template slot="title">牧场</template>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=2">
+                        <el-menu-item index="2-2">进入牧场</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=3">
+                        <el-menu-item index="2-3">进场称重</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=4">
+                        <el-menu-item index="2-4">检测完成</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=5">
+                        <el-menu-item index="2-5">装奶完成</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=6">
+                        <el-menu-item index="2-6">出场称重</el-menu-item>
+                    </a>
+                    <%--<a href="${pageContext.request.contextPath}/admin/cartypeCips">--%>
+                    <%--<el-menu-item index="2-2">奶车Cip清洗数据</el-menu-item>--%>
+                    <%--</a>--%>
+                </el-submenu>
+
+
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=7">
+                    <el-menu-item index="7">返程中</el-menu-item>
+                </a>
+                <el-submenu index="3">
+                    <template slot="title">工厂</template>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">
+                        <el-menu-item index="3-9">进入工厂</el-menu-item>
+                    </a>
+                    <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=10">
+                        <el-menu-item index="3-10">工厂取样</el-menu-item>
+                    </a>
+
+                    <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">--%>
+                    <%--<el-menu-item index="3-9">采样&工厂接奶</el-menu-item>--%>
+                    <%--</a>--%>
+
+                </el-submenu>
+
+                <%--<a href="${pageContext.request.contextPath}/admin/allHandovernos?status=9">--%>
+                <%--<el-menu-item index="10">加工厂接奶</el-menu-item>--%>
+                <%--</a>--%>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=11">
+                    <el-menu-item index="11">交接单完成</el-menu-item>
+                </a>
+                <a href="${pageContext.request.contextPath}/admin/allHandovernos?status=-2">
+                    <el-menu-item index="-2">异常单</el-menu-item>
+                </a>
+            </el-menu>
+        </aside>
+    </template>
+    <!-- menu end -->
+    <!-- content start -->
+    <div class="db-content-wrapper">
+        <el-button class="btn-fixed" <%--v-if="!hasCar"--%> type="primary" @click="getLocation">获取车辆定位</el-button>
+        <template>
+            <div id="container">
+
+            </div>
+        </template>
+        <jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+
+    function change(lat, lng) {
+        var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
+        var x = parseFloat(lng);
+        var y = parseFloat(lat);
+        var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
+        var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
+        lng = z * Math.cos(theta) + 0.0065;
+        lat = z * Math.sin(theta) + 0.006;
+        var html = {
+            lng: lng,
+            lat: lat
+        }
+        return html
+    }
+
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    var result1 =
+    ${purchaseInfo}
+    var result = result1[0].data
+    console.log(result)
+
+    var list = []
+    var line = []
+
+
+    function getQueryString(name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+
+    function ComplexCustomOverlay(data) {
+        var point = change(data.lat, data.lng)
+        this._point = new BMap.Point(point.lng, point.lat)
+        this._data = data;
+    }
+
+    function getCenterPoint(point1, point2, length, perlength) {
+        var point = {};
+        var x, y;
+        x = point2.lat - point1.lat;
+        y = point2.lng - point1.lng;
+        var per = parseInt(length / perlength);
+        x = x / per;
+        y = y / per;
+        point.lat = point1.lat + x;
+        point.lng = point1.lng + y;
+        return point;
+    }
+
+    new Vue({
+        el: '#app',
+        created: function () {
+
+            if (getQueryString("status")) {
+                this.menu2 = getQueryString('status')
+                if (getQueryString("status") > 1 && getQueryString("status") <= 5) {
+                    this.menu2 = "2-" + getQueryString('status')
+                }
+                if (getQueryString("status") > 7 && getQueryString("status") <= 10) {
+                    this.menu2 = "3-" + getQueryString('status')
+                }
+            }
+            else {
+                this.menu2 = '0-1'
+            }
+
+            var html = {}
+            if (result.supplierInfo) {
+                var point = change(result.supplierInfo.latitude, result.supplierInfo.longitude)
+                html.lat = point.lat
+                html.lng = point.lng
+                html.icon = '${pageContext.request.contextPath}/images/icon_muchang.png'
+                this.list.push(html)
+            }
+
+            html = {}
+            if (result.line.length > 0) {
+                var point = change(result.line[0].latitude, result.line[0].longitude)
+                html.lat = point.lat
+                html.lng = point.lng
+                this.hasCar = true
+            }
+            html.icon = '${pageContext.request.contextPath}/images/icon_che.png'
+            this.list.push(html)
+            html = {}
+            if (result.factoryInfo) {
+                var point = change(result.factoryInfo.latitude, result.factoryInfo.longitude)
+                html.lat = point.lat
+                html.lng = point.lng
+                html.icon = '${pageContext.request.contextPath}/images/icon_gongchang.png'
+                this.list.push(html)
+            }
+            var preLine = null
+            for (var i = 0; i < result.line.length; i++) {
+                var str = {}
+                var point = change(result.line[i].latitude, result.line[i].longitude)
+                var state=parseInt(result.line[i].handoverStatus)
+                if (preLine) {
+                    if (point.lat > 20) {
+
+                        var now_point = new BMap.Point(point.lng, point.lat)
+                        var long = BMapLib.GeoUtils.getDistance(now_point, preLine)
+
+                        console.log(long)
+                        if (long > 50) {
+                            if(state<=6){
+                                this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                            }
+                            else{
+                                this.line1.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                            }
+
+//                                    lines.splice(0,0,new BMap.Point(point.lng, point.lat))
+                            preLine = new BMap.Point(point.lng, point.lat)
+                        }
+//                        while (long>50){
+//                            if(long>500){
+//                                var pointElse= getCenterPoint(preLine,now_point,long,500);
+//                                this.line.splice(0, 0, new BMap.Point(pointElse.lng, pointElse.lat));
+//                                preLine = new BMap.Point(pointElse.lng, pointElse.lat);
+//
+//                            }
+//                            else{
+//                                this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+////                                    lines.splice(0,0,new BMap.Point(point.lng, point.lat))
+//                                preLine = new BMap.Point(point.lng, point.lat)
+//                            }
+//                            long = BMapLib.GeoUtils.getDistance(now_point, preLine)
+//                        }
+//                        if (long >50) {
+//
+//
+//                            var long = BMapLib.GeoUtils.getDistance(now_point, preLine)
+//                            if (long >50) {
+//                                this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+////                                    lines.splice(0,0,new BMap.Point(point.lng, point.lat))
+//                                preLine = new BMap.Point(point.lng, point.lat)
+//                            }
+////                            this.line.push(new BMap.Point(point.lng, point.lat))
+////                            if(result.line.length>1000){
+////                                if(long>2000){
+////                                    this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+//////                                    lines.splice(0,0,new BMap.Point(point.lng, point.lat))
+////                                    preLine = new BMap.Point(point.lng, point.lat)
+////                                }
+////                            }
+////                            else{
+////                                this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+//////                                    lines.splice(0,0,new BMap.Point(point.lng, point.lat))
+////                                preLine = new BMap.Point(point.lng, point.lat)
+////                            }
+//
+//
+//                        }
+                    }
+
+                }
+                else {
+                    if (point.lat > 20) {
+//                        this.line.push(new BMap.Point(point.lng, point.lat))
+                        if(state<=6){
+                            this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                        }
+                        else{
+                            this.line1.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                        }
+                        // this.line.splice(0, 0, new BMap.Point(point.lng, point.lat));
+                        preLine = new BMap.Point(point.lng, point.lat)
+                    }
+                }
+
+
+            }
+            console.log(this.list)
+
+        },
+        mounted: function () {
+            // 百度地图API功能
+            this.mp = new BMap.Map("container", {minZoom: 8, maxZoom: 15});
+            this.mp.centerAndZoom(new BMap.Point(this.list[0].lng, this.list[0].lat), 12);
+            this.mp.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
+
+            var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_RIGHT});// 右上角,添加比例尺
+            var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
+            var overViewOpen = new BMap.OverviewMapControl({isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT});
+            this.mp.addControl(top_left_control);
+            this.mp.addControl(top_left_navigation);
+//            this.mp.addControl(overViewOpen);
+
+            // 复杂的自定义覆盖物
+
+            var vm = this
+
+            ComplexCustomOverlay.prototype = new BMap.Overlay();
+            ComplexCustomOverlay.prototype.initialize = function (map) {
+                this._map = map;
+                var div = this._div = document.createElement("div");
+                div.className = "map-overlay";
+                div.style.position = "absolute";
+//                div.style.width = 40+'px';
+//                div.style.height = 48+'px';
+                div.style.zIndex = BMap.Overlay.getZIndex(this._point.lat);
+                div.style.MozUserSelect = "none";
+                var icon = document.createElement("img");
+                icon.className = "icon";
+                icon.src = this._data.icon;
+                icon.width = 40;
+                icon.height = 48;
+                icon.style.display = "block";
+                icon.style.borderRadius = "28px";
+                div.appendChild(icon);
+
+//
+//                div.onmouseover = function(){
+//                    this.style.backgroundColor = "#6BADCA";
+//                    this.style.borderColor = "#0000ff";
+//                    this.getElementsByTagName("span")[0].innerHTML = that._overText;
+//                    arrow.style.backgroundPosition = "0px -20px";
+//                }
+//
+//                div.onmouseout = function(){
+//                    this.style.backgroundColor = "#EE5D5B";
+//                    this.style.borderColor = "#BC3B3A";
+//                    this.getElementsByTagName("span")[0].innerHTML = that._text;
+//                    arrow.style.backgroundPosition = "0px 0px";
+//                }
+
+                vm.mp.getPanes().labelPane.appendChild(div);
+
+                return div;
+            }
+            ComplexCustomOverlay.prototype.draw = function () {
+                var map = this._map;
+                var pixel = map.pointToOverlayPixel(this._point);
+                var divStyle = this._div.style;
+                divStyle.left = pixel.x - 20 + "px";
+                divStyle.top = pixel.y - 48 + "px";
+            }
+
+
+//            this.mp.addOverlay(myCompOverlay);
+            console.log(this.list)
+            for (var i = 0; i < this.list.length; i++) {
+                var myCompOverlay = new ComplexCustomOverlay(this.list[i]);
+                this.mp.addOverlay(myCompOverlay);
+            }
+//
+//
+            var sy = new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, {
+                scale: 0.6,//图标缩放大小
+                strokeColor: '#fff',//设置矢量图标的线填充颜色
+                strokeWeight: '2',//设置线宽
+            });
+            var icons = new BMap.IconSequence(sy, '10', '30');
+// 创建polyline对象
+
+//            console.log(this.line)
+//            this.line=this.line.slice(0,295)
+//            console.log(this.line)
+//            var line=this.line
+//            this.line=line.slice(0,5);
+////            this.line.push(line[9])
+//            for(var i=12;i<line.length;i++){
+//                this.line.push(line[i])
+//            }
+
+            console.log(this.line)
+            if (this.line1.length > 1 &&this.line.length > 1) {
+                this.line.push(this.line1[0])
+            }
+            if (this.line.length > 1) {
+                var polyline = new BMap.Polyline(this.line, {
+                    enableEditing: false,//是否启用线编辑,默认为false
+                    enableClicking: false,//是否响应点击事件,默认为true
+//                    icons: [icons],
+                    strokeWeight: '8',//折线的宽度,以像素为单位
+                    strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1
+                    strokeColor: "#18a45b" //折线颜色
+                });
+//
+                this.mp.addOverlay(polyline);          //增加折线
+
+
+            }
+            if (this.line1.length > 1) {
+                var polyline1 = new BMap.Polyline(this.line1, {
+                    enableEditing: false,//是否启用线编辑,默认为false
+                    enableClicking: false,//是否响应点击事件,默认为true
+//                    icons: [icons],
+                    strokeWeight: '8',//折线的宽度,以像素为单位
+                    strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1
+                    strokeColor: "#428AC4" //折线颜色
+                });
+//
+                this.mp.addOverlay(polyline1);          //增加折线
+
+
+            }
+
+
+        },
+        data: function () {
+            return {
+                menu: '1',
+                menu2: '0-1',
+                hasCar: false,
+                user: {
+                    id: '',
+
+                    username: 'admin',
+                    avatar: ''
+                },
+                loading: false,
+                edit: false,
+                tab: 1,
+                row_info: {
+                    factorynumber: '',
+                    numbering: ''
+                },
+                factoryInfos: [],
+                supplierInfos: [],
+                line: [],
+                line1:[],
+                list: []
+            };
+        },
+        methods: {
+            logout: function () {
+                this.$confirm('确定要注销吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(function () {
+                    localStorage.removeItem('user');
+                    this.$router.push({path: '/login'});
+                }.bind(this)).catch(function (e) {
+
+                });
+            },
+            onSubmit: function () {
+                var data = JSON.parse(JSON.stringify(this.row_info));
+                $.post({
+                    url: this.edit ? '../milkPlan/update' : '../milkPlan/save',
+                    data: data
+                }).then(function (res) {
+                    if (res.success) {
+                        if (!this.edit) {
+                            this.row_info.id = res.data;
+                        }
+                        this.edit = true;
+                        this.$message.success(this.edit ? '保存成功' : '创建成功');
+                    } else {
+                        this.$message.error(this.edit ? '保存失败' : '创建失败');
+                    }
+                }.bind(this))
+            },
+            getLocation: function () {
+                $.get({
+                    url: '../carGps/byHandOverNo',
+                    data: {
+                        handOverNo: getQueryString('handOverNo')
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    if (res.success) {
+                        location.reload()
+                    }
+                })
+            }
+        }
+    })
+</script>
+</html>
+

+ 113 - 0
Web/WEB-INF/jsp/newAdmin/menuInfo.jsp

@@ -0,0 +1,113 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+	<jsp:include page="head.jsp"/>
+	<title>奶源追溯</title>
+</head>
+<body>
+<jsp:include page="contentBefore.jsp"/>
+<div class="db-body">
+
+    <!-- menu end -->
+
+    <!-- content start -->
+    <div class="db-content-wrapper" style="padding: 60px 0px 0px;">
+        <section class="db-content">
+<template>
+	<el-form ref="form" :model="row_info" label-width="80px">
+		<el-form-item label="name">
+			<el-input v-model="row_info.name"></el-input>
+		</el-form-item>
+		<el-form-item label="parent">
+			<el-input v-model="row_info.parent"></el-input>
+		</el-form-item>
+		<el-form-item label="type">
+			<el-input v-model="row_info.type"></el-input>
+		</el-form-item>
+		<el-form-item label="url">
+			<el-input v-model="row_info.url"></el-input>
+		</el-form-item>
+		<el-form-item>
+			<el-button type="primary" @click="onSubmit">{{edit?'保存':'立即创建'}}</el-button>
+			<el-button>取消</el-button>
+	</el-form-item>
+	</el-form>
+</template>
+<jsp:include page="contentAfter.jsp"/>
+</body>
+<script>
+	function getQueryString(name) {
+		var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+		var r = window.location.search.substr(1).match(reg);
+		if (r != null) return unescape(r[2]);
+		return null;
+	}
+	new Vue({
+		el: '#app',
+		created: function () {
+			var id = getQueryString('id');
+			if (id) {
+				$.get({
+					url: '../menuInfo/getMenuInfo',
+					data: {
+						id: id
+					}
+				}).then(function (res) {
+					if (res.success) {
+						this.edit = true;
+						this.row_info = res.data;
+					}
+				}.bind(this));
+			}
+		},
+		data: function () {
+			return {
+				menu: '0-0',
+				user: {
+					id: '',
+
+					username: 'admin',
+					avatar: ''
+				},
+				loading: false,
+				edit: false,
+				tab: 1,
+				row_info : {},
+			};
+		},
+		methods: {
+			logout: function () {
+				this.$confirm('确定要注销吗?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'info'
+				}).then(function () {
+					localStorage.removeItem('user');
+					this.$router.push({path: '/login'});
+				}.bind(this)).catch(function (e) {
+
+				});
+			},
+			onSubmit: function () {
+				var data = JSON.parse(JSON.stringify(this.row_info));
+				$.post({
+					url: this.edit ? '../menuInfo/update' : '../menuInfo/save',
+					data: data
+				}).then(function (res) {
+					if (res.success) {
+						if (!this.edit) {
+							this.row_info.id = res.data;
+						}
+						this.edit = true;
+						this.$message.success(this.edit ? '保存成功' : '创建成功');
+						window.location='menuInfos.html' + getPageString("?");;
+					} else {
+						this.$message.error(this.edit ? '保存失败' : '创建失败');
+					}
+				}.bind(this))
+			},
+		}
+	})
+</script>
+</html>
+

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.