瀏覽代碼

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

qihanjiao 7 年之前
父節點
當前提交
edd041a1c8
共有 88 個文件被更改,包括 4154 次插入4520 次删除
  1. 1 1
      .idea/artifacts/watero_rst_web_war.xml
  2. 2 2
      .idea/artifacts/watero_rst_web_war_exploded.xml
  3. 0 69
      .idea/compiler.xml
  4. 0 13
      .idea/libraries/Maven__com_github_pagehelper_pagehelper_5_0_3.xml
  5. 0 86
      .idea/misc.xml
  6. 0 6
      .idea/vcs.xml
  7. 0 2723
      .idea/workspace.xml
  8. 118 0
      watero-common-tool/src/main/java/com/iamberry/wechat/tools/RespJsonBean.java
  9. 2 0
      watero-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  10. 15 0
      watero-rst-core/pom.xml
  11. 14 5
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/processNode.java
  12. 44 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/Produce.java
  13. 34 3
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/ProduceProcess.java
  14. 90 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsEmployee.java
  15. 114 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachine.java
  16. 148 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineLogs.java
  17. 32 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/AccessToken.java
  18. 30 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/QRCJson.java
  19. 46 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/Token.java
  20. 245 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/WeixinUtil.java
  21. 12 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/DeviceService.java
  22. 7 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/EquipmentService.java
  23. 15 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineLogsService.java
  24. 23 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java
  25. 50 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/ProduceService.java
  26. 21 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsEmployeeService.java
  27. 14 0
      watero-rst-service/pom.xml
  28. 26 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/DeviceServiceImpl.java
  29. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/EquipmentServiceImpl.java
  30. 31 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineLogsServiceImpl.java
  31. 42 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java
  32. 113 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java
  33. 35 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsEmployeeServiceImpl.java
  34. 12 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/DeviceMapper.java
  35. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/EquipmentMapper.java
  36. 15 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineLogsMapper.java
  37. 21 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java
  38. 54 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java
  39. 24 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsEmployeeMapper.java
  40. 20 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/deviceMapper.xml
  41. 0 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/equipmentMapper.xml
  42. 32 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineLogsMapper.xml
  43. 82 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineMapper.xml
  44. 296 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/produceMapper.xml
  45. 49 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ptsEmployeeMapper.xml
  46. 44 0
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  47. 15 0
      watero-rst-web/pom.xml
  48. 2 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/OrderTask.java
  49. 73 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java
  50. 129 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminProduceController.java
  51. 30 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsEmployeeController.java
  52. 50 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/EquipmentController.java
  53. 214 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java
  54. 54 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/ProduceAppController.java
  55. 57 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/PtsEmployeeAppController.java
  56. 0 3
      watero-rst-web/src/main/java/com/iamberry/rst/utils/ValidateUtil.java
  57. 0 30
      watero-rst-web/src/main/java/com/iamberry/rst/utils/test.java
  58. 21 6
      watero-rst-web/src/main/resources/platform.properties
  59. 21 9
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  60. 83 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl
  61. 86 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/produce_list.ftl
  62. 208 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl
  63. 208 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl
  64. 二進制
      watero-rst-web/src/main/webapp/common/images/jiqi-1.png
  65. 2 2
      watero-rst-web/src/test/java/junit/com/iamberry/rst/Test.java
  66. 12 12
      wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/product/QrcodeGift.java
  67. 0 126
      wateroPF-common-core/wateroPF-common-core.iml
  68. 0 125
      wateroPF-common-tool/wateroPF-common-tool.iml
  69. 14 0
      wateroPF-common-web/pom.xml
  70. 0 124
      wateroPF-common-web/wateroPF-common-web.iml
  71. 0 126
      wateroPF-wechat-interface/wateroPF-wechat-interface.iml
  72. 3 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/ImberryConfig.java
  73. 1 1
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml
  74. 180 180
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productInfoMapper.xml
  75. 208 132
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java
  76. 0 129
      wateroPF-wechat-service/wateroPF-wechat-service.iml
  77. 14 0
      wateroPF-wechat-web/pom.xml
  78. 3 1
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java
  79. 122 94
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java
  80. 114 113
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/ProductInfoHandler.java
  81. 16 16
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java
  82. 211 207
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java
  83. 5 2
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/porduct/ProductHandler.java
  84. 2 1
      wateroPF-wechat-web/src/main/resources/iamberry-app-service-config.properties
  85. 1 1
      wateroPF-wechat-web/src/main/webapp/WEB-INF/views/admin/product/addProductPrice.jsp
  86. 1 1
      wateroPF-wechat-web/src/main/webapp/WEB-INF/views/wechat/chanpin_details.html
  87. 7 0
      wateroPF-wechat-web/src/main/webapp/common/shop/js/page/chanpin_details.js
  88. 0 169
      wateroPF-wechat-web/wateroPF-wechat-web.iml

+ 1 - 1
.idea/artifacts/watero_rst_web_war.xml

@@ -1,7 +1,7 @@
 <component name="ArtifactManager">
   <artifact type="war" name="watero-rst-web:war">
     <output-path>$PROJECT_DIR$/watero-rst-web/target</output-path>
-    <root id="archive" name="watero-rst-web-1.0.0.war">
+    <root id="archive" name="watero-rent-web.war">
       <element id="artifact" artifact-name="watero-rst-web:war exploded" />
     </root>
   </artifact>

+ 2 - 2
.idea/artifacts/watero_rst_web_war_exploded.xml

@@ -1,6 +1,6 @@
 <component name="ArtifactManager">
   <artifact type="exploded-war" name="watero-rst-web:war exploded">
-    <output-path>$PROJECT_DIR$/watero-rst-web/target/watero-rst-web-1.0.0</output-path>
+    <output-path>$PROJECT_DIR$/watero-rst-web/target/watero-rent-web</output-path>
     <root id="root">
       <element id="directory" name="WEB-INF">
         <element id="directory" name="classes">
@@ -145,7 +145,7 @@
         </element>
       </element>
       <element id="directory" name="META-INF">
-        <element id="file-copy" path="$PROJECT_DIR$/watero-rst-web/target/watero-rst-web-1.0.0/META-INF/MANIFEST.MF" />
+        <element id="file-copy" path="$PROJECT_DIR$/watero-rst-web/target/watero-rent-web/META-INF/MANIFEST.MF" />
       </element>
       <element id="javaee-facet-resources" facet="watero-rst-web/web/Web" />
     </root>

+ 0 - 69
.idea/compiler.xml

@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <resourceExtensions />
-    <wildcardResourcePatterns>
-      <entry name="!?*.java" />
-      <entry name="!?*.form" />
-      <entry name="!?*.class" />
-      <entry name="!?*.groovy" />
-      <entry name="!?*.scala" />
-      <entry name="!?*.flex" />
-      <entry name="!?*.kt" />
-      <entry name="!?*.clj" />
-      <entry name="!?*.aj" />
-    </wildcardResourcePatterns>
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="false">
-        <processorPath useClasspath="true" />
-      </profile>
-      <profile default="false" name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <processorPath useClasspath="true" />
-        <module name="watero-common-core" />
-        <module name="watero-common-tool" />
-        <module name="watero-common-web" />
-        <module name="watero-rent-interface" />
-        <module name="watero-rent-service" />
-        <module name="watero-rent-web" />
-        <module name="watero-rst-core" />
-        <module name="watero-rst-interface" />
-        <module name="watero-rst-service" />
-        <module name="watero-rst-web" />
-        <module name="watero-wechat-interface" />
-        <module name="watero-wechat-service" />
-        <module name="watero-wechat-web" />
-        <module name="wateroPF-common-core" />
-        <module name="wateroPF-common-tool" />
-        <module name="wateroPF-common-web" />
-        <module name="wateroPF-wechat-interface" />
-        <module name="wateroPF-wechat-service" />
-        <module name="wateroPF-wechat-web" />
-      </profile>
-    </annotationProcessing>
-    <bytecodeTargetLevel target="1.7">
-      <module name="iamberry-parent" target="1.8" />
-      <module name="watero-common-core" target="1.7" />
-      <module name="watero-common-tool" target="1.7" />
-      <module name="watero-common-web" target="1.8" />
-      <module name="watero-rent-interface" target="1.7" />
-      <module name="watero-rent-service" target="1.8" />
-      <module name="watero-rent-web" target="1.7" />
-      <module name="watero-rst-core" target="1.8" />
-      <module name="watero-rst-interface" target="1.8" />
-      <module name="watero-rst-service" target="1.8" />
-      <module name="watero-rst-web" target="1.8" />
-      <module name="watero-wechat-interface" target="1.7" />
-      <module name="watero-wechat-service" target="1.7" />
-      <module name="watero-wechat-web" target="1.8" />
-      <module name="wateroPF-common-core" target="1.7" />
-      <module name="wateroPF-common-tool" target="1.7" />
-      <module name="wateroPF-common-web" target="1.8" />
-      <module name="wateroPF-wechat-interface" target="1.7" />
-      <module name="wateroPF-wechat-service" target="1.7" />
-      <module name="wateroPF-wechat-web" target="1.8" />
-    </bytecodeTargetLevel>
-  </component>
-</project>

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

@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.github.pagehelper:pagehelper:5.0.3">
-    <CLASSES>
-      <root url="jar://$MAVEN_REPOSITORY$/com/github/pagehelper/pagehelper/5.0.3/pagehelper-5.0.3.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$MAVEN_REPOSITORY$/com/github/pagehelper/pagehelper/5.0.3/pagehelper-5.0.3-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$MAVEN_REPOSITORY$/com/github/pagehelper/pagehelper/5.0.3/pagehelper-5.0.3-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>

+ 0 - 86
.idea/misc.xml

@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ClientPropertiesManager">
-    <properties class="javax.swing.AbstractButton">
-      <property name="hideActionText" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JComponent">
-      <property name="html.disable" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JEditorPane">
-      <property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
-      <property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
-      <property name="charset" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.JList">
-      <property name="List.isFileList" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JPasswordField">
-      <property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JSlider">
-      <property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
-      <property name="JSlider.isFilled" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTable">
-      <property name="Table.isFileList" class="java.lang.Boolean" />
-      <property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
-      <property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JToolBar">
-      <property name="JToolBar.isRollover" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTree">
-      <property name="JTree.lineStyle" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.text.JTextComponent">
-      <property name="caretAspectRatio" class="java.lang.Double" />
-      <property name="caretWidth" class="java.lang.Integer" />
-    </properties>
-  </component>
-  <component name="EntryPointsManager">
-    <entry_points version="2.0" />
-  </component>
-  <component name="FrameworkDetectionExcludesConfiguration">
-    <file type="web" url="file://$PROJECT_DIR$/iamberry-app-api" />
-    <file type="web" url="file://$PROJECT_DIR$/iamberry-app-international" />
-    <file type="web" url="file://$PROJECT_DIR$/iamberry-wechat-web" />
-    <file type="web" url="file://$PROJECT_DIR$/watero-rst-web" />
-    <file type="web" url="file://$PROJECT_DIR$/watero-wechat-web" />
-    <file type="web" url="file://$PROJECT_DIR$/wateroPF-wechat-web" />
-  </component>
-  <component name="MavenProjectsManager">
-    <option name="originalFiles">
-      <list>
-        <option value="$PROJECT_DIR$/pom.xml" />
-      </list>
-    </option>
-  </component>
-  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
-    <OptionsSetting value="true" id="Add" />
-    <OptionsSetting value="true" id="Remove" />
-    <OptionsSetting value="true" id="Checkout" />
-    <OptionsSetting value="true" id="Update" />
-    <OptionsSetting value="true" id="Status" />
-    <OptionsSetting value="true" id="Edit" />
-    <ConfirmationsSetting value="0" id="Add" />
-    <ConfirmationsSetting value="0" id="Remove" />
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" assert-keyword="true" jdk-15="true" 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="http://yos-01604136458/svn/project/iamberry-common-parent" />
-            </SvnBranchConfiguration>
-          </value>
-        </entry>
-      </map>
-    </option>
-    <option name="mySupportsUserInfoFilter" value="true" />
-  </component>
-</project>

+ 0 - 6
.idea/vcs.xml

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

File diff suppressed because it is too large
+ 0 - 2723
.idea/workspace.xml


+ 118 - 0
watero-common-tool/src/main/java/com/iamberry/wechat/tools/RespJsonBean.java

@@ -0,0 +1,118 @@
+package com.iamberry.wechat.tools;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 用于对接app接口的json
+ * wangxiaoming
+ */
+public class RespJsonBean implements Serializable {
+
+	private static final long serialVersionUID = -3391219323921796355L;
+
+	private int resultCode = 200;			// 请求code
+
+	private String resultMsg = "SUCCESS";	// 请求code描述
+
+	private Integer returnCode;				// 业务结果
+
+	private Object returnMsg;					//返回结果
+
+	private Map<String, Object> message;	// 返回的结果信息
+
+	/**
+	 * 成功时返回
+	 */
+	public static RespJsonBean SUCCESS = new RespJsonBean(200, "SUCCESS", 200);
+
+	/**
+	 * 失败时返回
+	 */
+	public static RespJsonBean FAILURE = new RespJsonBean(200, "FAILURE", 500);
+
+	public RespJsonBean() {
+		super();
+	}
+
+	public int getResultCode() {
+		return resultCode;
+	}
+
+	public void setResultCode(int resultCode) {
+		this.resultCode = resultCode;
+	}
+
+	public String getResultMsg() {
+		return resultMsg;
+	}
+
+	public void setResultMsg(String resultMsg) {
+		this.resultMsg = resultMsg;
+	}
+
+	public Integer getReturnCode() {
+		return returnCode;
+	}
+
+	public void setReturnCode(Integer returnCode) {
+		this.returnCode = returnCode;
+	}
+
+	public Map<String, Object> getMessage() {
+		return message;
+	}
+
+	public void setMessage(Map<String, Object> returnMsg) {
+		this.message = returnMsg;
+	}
+
+
+    public Object getReturnMsg() {
+        return returnMsg;
+    }
+
+    public void setReturnMsg(Object returnMsg) {
+        this.returnMsg = returnMsg;
+    }
+
+    /**
+	 * 添加返回结果 returnMsg='value'结果
+	 * @param key
+	 * @param value
+	 */
+	public RespJsonBean addResponseKeyValue(String value) {
+		if (this.message == null) {
+			message = new HashMap<String, Object>();
+		}
+		this.message.put("returnMsg", value);
+		return this;
+	}
+
+	/**
+	 * 添加返回结果 key='value'结果
+	 * @param key
+	 * @param value
+	 */
+	public RespJsonBean addResponseKeyValue(String Key, Object value) {
+		if (this.message == null) {
+			message = new HashMap<String, Object>();
+		}
+		this.message.put(Key, value);
+		return this;
+	}
+
+	public RespJsonBean(int resultCode, String resultMsg, Integer returnCode) {
+		super();
+		this.resultCode = resultCode;
+		this.resultMsg = resultMsg;
+		this.returnCode = returnCode;
+	}
+
+	public RespJsonBean(Integer returnCode, String returnMsg){
+		super();
+		this.returnCode = returnCode;
+		addResponseKeyValue(returnMsg);
+	}
+}

+ 2 - 0
watero-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -28,6 +28,8 @@ public class ResultInfo {
 	
 	public  static String repeatNameError="";
 	public  static String lostMemberInfo="";
+
+	public  static String barCodePrefix="MACHINE_QR_CODE";
 	/**
 	 * 初始化代理商信息openid成功前缀
 	 */

+ 15 - 0
watero-rst-core/pom.xml

@@ -25,4 +25,19 @@
             <version>1.1.0.Final</version>
         </dependency>
     </dependencies>
+
+    <build>
+        <finalName>watero-rent-web</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 14 - 5
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/processNode.java

@@ -9,12 +9,13 @@ import java.util.Date;
  * Created by wangxiaoming on 2017/8/25.
  *
  */
-public class processNode implements Serializable {
+public class ProcessNode implements Serializable {
     private static final long serialVersionUID = -8907483062161665521L;
     private Integer nodeId;             //节点id
     private Integer produceId;          //产品id
     private Integer processId;          //工序id
-    private Integer nodeNo;             //节点编号
+    private String nodeNo;             //节点编号
+    private Integer nodeStatus;         //节点状态  1:正常  0异常
     private String nodeDes;             //节点备注
     private Date nodeCreateTime;       //创建时间
     private Date nodeUpdateTime;       //修改时间
@@ -43,11 +44,11 @@ public class processNode implements Serializable {
         this.processId = processId;
     }
 
-    public Integer getNodeNo() {
+    public String getNodeNo() {
         return nodeNo;
     }
 
-    public void setNodeNo(Integer nodeNo) {
+    public void setNodeNo(String nodeNo) {
         this.nodeNo = nodeNo;
     }
 
@@ -75,9 +76,17 @@ public class processNode implements Serializable {
         this.nodeUpdateTime = nodeUpdateTime;
     }
 
+    public Integer getNodeStatus() {
+        return nodeStatus;
+    }
+
+    public void setNodeStatus(Integer nodeStatus) {
+        this.nodeStatus = nodeStatus;
+    }
+
     @Override
     public String toString() {
-        return "processNode{" +
+        return "ProcessNode{" +
                 "nodeId=" + nodeId +
                 ", produceId=" + produceId +
                 ", processId=" + processId +

+ 44 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/Produce.java

@@ -1,7 +1,9 @@
 package com.iamberry.rst.core.pts;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 产品类
@@ -11,12 +13,22 @@ public class Produce implements Serializable {
 
     private static final long serialVersionUID = -4839873263890150738L;
     private Integer  produceId;             //产品id
+    private String produceNo;                 //产品编号
     private String produceName;             //产品名称
     private Integer produceStatus;          //产品状态
     private String produceRemake;           //产品备注
     private Date produceCreateTime;         //创建时间
     private Date produceUpdateTime;         //修改时间
 
+    private Integer employeeId;            //员工id
+
+    private List<ProduceProcess>  process = new ArrayList<ProduceProcess>();  //工序集合
+<<<<<<< HEAD
+
+    private String json;  //传入json值
+=======
+>>>>>>> eb685e74ac2f2e0aab3c535e4364bb65e2af746f
+
     public Integer getProduceId() {
         return produceId;
     }
@@ -65,6 +77,38 @@ public class Produce implements Serializable {
         this.produceUpdateTime = produceUpdateTime;
     }
 
+    public List<ProduceProcess> getProcess() {
+        return process;
+    }
+
+    public void setProcess(List<ProduceProcess> process) {
+        this.process = process;
+    }
+
+    public Integer getEmployeeId() {
+        return employeeId;
+    }
+
+    public void setEmployeeId(Integer employeeId) {
+        this.employeeId = employeeId;
+    }
+
+    public String getProduceNo() {
+        return produceNo;
+    }
+
+    public void setProduceNo(String produceNo) {
+        this.produceNo = produceNo;
+    }
+
+    public String getJson() {
+        return json;
+    }
+
+    public void setJson(String json) {
+        this.json = json;
+    }
+
     @Override
     public String toString() {
         return "Produce{" +

+ 34 - 3
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/ProduceProcess.java

@@ -1,7 +1,9 @@
 package com.iamberry.rst.core.pts;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 产品工序类
@@ -11,16 +13,21 @@ public class ProduceProcess implements Serializable {
     private static final long serialVersionUID = -1772411181364755611L;
     private Integer processId;              //工序id
     private Integer produceId;              //生产产品id
-    private char processNo;                //工序编号
+    private String processNo;                //工序编号
     private String processName;            //工序名称
     private Integer employeeId;            //员工id
     private Integer driveId;                //设备id
     private Integer processStatus;         //工序状态0:停止使用;1:正常使用;
+    private Integer processType;           //工序类型  1:生产工序  2:修理工序
     private Integer processSort;           //工序排序
     private String processRemake;          //工序备注
     private Date processCreateTime;       //创建时间
     private Date processUpdateTime;       //修改时间
 
+    private List<ProcessNode> nodes = new ArrayList<ProcessNode>();  //节点集合
+
+    private String json;    //传入的json字符串
+
     public Integer getProcessId() {
         return processId;
     }
@@ -37,11 +44,11 @@ public class ProduceProcess implements Serializable {
         this.produceId = produceId;
     }
 
-    public char getProcessNo() {
+    public String getProcessNo() {
         return processNo;
     }
 
-    public void setProcessNo(char processNo) {
+    public void setProcessNo(String processNo) {
         this.processNo = processNo;
     }
 
@@ -109,6 +116,30 @@ public class ProduceProcess implements Serializable {
         this.processUpdateTime = processUpdateTime;
     }
 
+    public List<ProcessNode> getNodes() {
+        return nodes;
+    }
+
+    public void setNodes(List<ProcessNode> nodes) {
+        this.nodes = nodes;
+    }
+
+    public Integer getProcessType() {
+        return processType;
+    }
+
+    public void setProcessType(Integer processType) {
+        this.processType = processType;
+    }
+
+    public String getJson() {
+        return json;
+    }
+
+    public void setJson(String json) {
+        this.json = json;
+    }
+
     @Override
     public String toString() {
         return "ProduceProcess{" +

+ 90 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsEmployee.java

@@ -8,7 +8,7 @@ import java.util.Date;
  * Created by Administrator on 2017 /8/25.
  */
 public class PtsEmployee implements Serializable{
-    private static final long serialVersionUID = 5366910371221991247L;
+    private static final long serialVersionUID = -285275733790334526L;
     private Integer employeeId;
     private String employeeNo; //员工编号
     private String employeeName; //员工姓名
@@ -18,6 +18,7 @@ public class PtsEmployee implements Serializable{
     private Date employeeDepartureDate;//离职日期
     private String employeePost; //员工岗位
     private String employeeDesc; //员工备注
+    private Integer employeeClearPower; //是否拥有清除权限 0:否 1:是
     private Date employeeCreateTime; //创建时间
     private Date employeeUpdateTime; //修改时间
 
@@ -28,4 +29,92 @@ public class PtsEmployee implements Serializable{
     public void setEmployeeId(Integer employeeId) {
         this.employeeId = employeeId;
     }
+
+    public String getEmployeeNo() {
+        return employeeNo;
+    }
+
+    public void setEmployeeNo(String employeeNo) {
+        this.employeeNo = employeeNo;
+    }
+
+    public String getEmployeeName() {
+        return employeeName;
+    }
+
+    public void setEmployeeName(String employeeName) {
+        this.employeeName = employeeName;
+    }
+
+    public String getEmployeeTel() {
+        return employeeTel;
+    }
+
+    public void setEmployeeTel(String employeeTel) {
+        this.employeeTel = employeeTel;
+    }
+
+    public Integer getEmployeeState() {
+        return employeeState;
+    }
+
+    public void setEmployeeState(Integer employeeState) {
+        this.employeeState = employeeState;
+    }
+
+    public String getEmployeeEntryDate() {
+        return employeeEntryDate;
+    }
+
+    public void setEmployeeEntryDate(String employeeEntryDate) {
+        this.employeeEntryDate = employeeEntryDate;
+    }
+
+    public Date getEmployeeDepartureDate() {
+        return employeeDepartureDate;
+    }
+
+    public void setEmployeeDepartureDate(Date employeeDepartureDate) {
+        this.employeeDepartureDate = employeeDepartureDate;
+    }
+
+    public String getEmployeePost() {
+        return employeePost;
+    }
+
+    public void setEmployeePost(String employeePost) {
+        this.employeePost = employeePost;
+    }
+
+    public String getEmployeeDesc() {
+        return employeeDesc;
+    }
+
+    public void setEmployeeDesc(String employeeDesc) {
+        this.employeeDesc = employeeDesc;
+    }
+
+    public Date getEmployeeCreateTime() {
+        return employeeCreateTime;
+    }
+
+    public void setEmployeeCreateTime(Date employeeCreateTime) {
+        this.employeeCreateTime = employeeCreateTime;
+    }
+
+    public Date getEmployeeUpdateTime() {
+        return employeeUpdateTime;
+    }
+
+    public void setEmployeeUpdateTime(Date employeeUpdateTime) {
+        this.employeeUpdateTime = employeeUpdateTime;
+    }
+
+    public Integer getEmployeeClearPower() {
+        return employeeClearPower;
+    }
+
+    public void setEmployeeClearPower(Integer employeeClearPower) {
+        this.employeeClearPower = employeeClearPower;
+    }
 }

+ 114 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachine.java

@@ -19,6 +19,8 @@ public class PtsMachine implements Serializable{
     private Integer machineIsPrint;//是否打印
     private String machineCompoundImg;//合成图片
     private Integer machineProcessState;//生成流程状态
+    private String machineSoftwareVersion;//软件版本
+    private String machineHardwareVersion;//硬件版本
     private Date machineCreateTime;//创建时间
     private Date machineUpdateTime;//修改时间
 
@@ -29,4 +31,116 @@ public class PtsMachine implements Serializable{
     public void setMachineId(Integer machineId) {
         this.machineId = machineId;
     }
+
+    public String getMachineQrcode() {
+        return machineQrcode;
+    }
+
+    public void setMachineQrcode(String machineQrcode) {
+        this.machineQrcode = machineQrcode;
+    }
+
+    public String getMachineBarcode() {
+        return machineBarcode;
+    }
+
+    public void setMachineBarcode(String machineBarcode) {
+        this.machineBarcode = machineBarcode;
+    }
+
+    public Date getMachineSalesDate() {
+        return machineSalesDate;
+    }
+
+    public void setMachineSalesDate(Date machineSalesDate) {
+        this.machineSalesDate = machineSalesDate;
+    }
+
+    public Integer getMachineSalesState() {
+        return machineSalesState;
+    }
+
+    public void setMachineSalesState(Integer machineSalesState) {
+        this.machineSalesState = machineSalesState;
+    }
+
+    public Integer getMachineStatus() {
+        return machineStatus;
+    }
+
+    public void setMachineStatus(Integer machineStatus) {
+        this.machineStatus = machineStatus;
+    }
+
+    public Date getMachineProducedTime() {
+        return machineProducedTime;
+    }
+
+    public void setMachineProducedTime(Date machineProducedTime) {
+        this.machineProducedTime = machineProducedTime;
+    }
+
+    public Date getMachineSubTime() {
+        return machineSubTime;
+    }
+
+    public void setMachineSubTime(Date machineSubTime) {
+        this.machineSubTime = machineSubTime;
+    }
+
+    public Integer getMachineIsPrint() {
+        return machineIsPrint;
+    }
+
+    public void setMachineIsPrint(Integer machineIsPrint) {
+        this.machineIsPrint = machineIsPrint;
+    }
+
+    public String getMachineCompoundImg() {
+        return machineCompoundImg;
+    }
+
+    public void setMachineCompoundImg(String machineCompoundImg) {
+        this.machineCompoundImg = machineCompoundImg;
+    }
+
+    public Integer getMachineProcessState() {
+        return machineProcessState;
+    }
+
+    public void setMachineProcessState(Integer machineProcessState) {
+        this.machineProcessState = machineProcessState;
+    }
+
+    public Date getMachineCreateTime() {
+        return machineCreateTime;
+    }
+
+    public void setMachineCreateTime(Date machineCreateTime) {
+        this.machineCreateTime = machineCreateTime;
+    }
+
+    public Date getMachineUpdateTime() {
+        return machineUpdateTime;
+    }
+
+    public void setMachineUpdateTime(Date machineUpdateTime) {
+        this.machineUpdateTime = machineUpdateTime;
+    }
+
+    public String getMachineSoftwareVersion() {
+        return machineSoftwareVersion;
+    }
+
+    public void setMachineSoftwareVersion(String machineSoftwareVersion) {
+        this.machineSoftwareVersion = machineSoftwareVersion;
+    }
+
+    public String getMachineHardwareVersion() {
+        return machineHardwareVersion;
+    }
+
+    public void setMachineHardwareVersion(String machineHardwareVersion) {
+        this.machineHardwareVersion = machineHardwareVersion;
+    }
 }

+ 148 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineLogs.java

@@ -0,0 +1,148 @@
+package com.iamberry.rst.core.pts;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 机器生产流程日志实体类
+ * Created by wangxiaoming on 2017/8/28.
+ */
+public class PtsMachineLogs  implements Serializable {
+
+    private static final long serialVersionUID = -7197256299985669307L;
+    private Integer logsId; //流程日志id
+    private Integer machineId; //机器id
+    private Integer employeeId; //员工id
+    private Integer produceId; //产品id
+    private Integer processId; //工序id
+    private Integer deviceId; //设备id
+    private String employeeName; //员工姓名
+    private String produceName; //产品名称
+    private String processName; //工序名称
+    private String deviceName;  //设备名称
+    private Integer logsProcessStatus; // 工序执行状态: 0异常   1正常
+    private Integer logsErrorType;      //异常类型  1:流程异常  2:次品异常
+    private String logsProcessPrompt;  //工序异常状态提示
+    private Date logsProcessTime; //工序执行时间
+    private Date logsCreateTime; //创建时间
+
+    public Integer getLogsId() {
+        return logsId;
+    }
+
+    public void setLogsId(Integer logsId) {
+        this.logsId = logsId;
+    }
+
+    public Integer getMachineId() {
+        return machineId;
+    }
+
+    public void setMachineId(Integer machineId) {
+        this.machineId = machineId;
+    }
+
+    public Integer getEmployeeId() {
+        return employeeId;
+    }
+
+    public void setEmployeeId(Integer employeeId) {
+        this.employeeId = employeeId;
+    }
+
+    public Integer getProduceId() {
+        return produceId;
+    }
+
+    public void setProduceId(Integer produceId) {
+        this.produceId = produceId;
+    }
+
+    public Integer getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(Integer processId) {
+        this.processId = processId;
+    }
+
+    public Integer getDeviceId() {
+        return deviceId;
+    }
+
+    public void setDeviceId(Integer deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    public String getEmployeeName() {
+        return employeeName;
+    }
+
+    public void setEmployeeName(String employeeName) {
+        this.employeeName = employeeName;
+    }
+
+    public String getProduceName() {
+        return produceName;
+    }
+
+    public void setProduceName(String produceName) {
+        this.produceName = produceName;
+    }
+
+    public String getProcessName() {
+        return processName;
+    }
+
+    public void setProcessName(String processName) {
+        this.processName = processName;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
+    public Integer getLogsProcessStatus() {
+        return logsProcessStatus;
+    }
+
+    public void setLogsProcessStatus(Integer logsProcessStatus) {
+        this.logsProcessStatus = logsProcessStatus;
+    }
+
+    public String getLogsProcessPrompt() {
+        return logsProcessPrompt;
+    }
+
+    public void setLogsProcessPrompt(String logsProcessPrompt) {
+        this.logsProcessPrompt = logsProcessPrompt;
+    }
+
+    public Date getLogsProcessTime() {
+        return logsProcessTime;
+    }
+
+    public void setLogsProcessTime(Date logsProcessTime) {
+        this.logsProcessTime = logsProcessTime;
+    }
+
+    public Date getLogsCreateTime() {
+        return logsCreateTime;
+    }
+
+    public void setLogsCreateTime(Date logsCreateTime) {
+        this.logsCreateTime = logsCreateTime;
+    }
+
+    public Integer getLogsErrorType() {
+        return logsErrorType;
+    }
+
+    public void setLogsErrorType(Integer logsErrorType) {
+        this.logsErrorType = logsErrorType;
+    }
+}

+ 32 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/AccessToken.java

@@ -0,0 +1,32 @@
+package com.iamberry.rst.core.tools;
+
+/**
+ * 微信通用接口凭证
+ * @author fzh
+ */
+public class AccessToken implements java.io.Serializable{
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 2670125377385352574L;
+	private String token; //获取到的凭证
+	private int expiresIn;//凭证有效时间,单位:秒
+
+	public String getToken() {
+		return token;
+	}
+
+	public void setToken(String token) {
+		this.token = token;
+	}
+
+	public int getExpiresIn() {
+		return expiresIn;
+	}
+
+	public void setExpiresIn(int expiresIn) {
+		this.expiresIn = expiresIn;
+	}
+	
+}

+ 30 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/QRCJson.java

@@ -0,0 +1,30 @@
+package com.iamberry.rst.core.tools;
+
+public class QRCJson implements java.io.Serializable{
+
+	private static final long serialVersionUID = -7364608710007647457L;
+	private String url;			  //二维码图片解析后的地址
+	private String ticket;		  //二维码ticket
+	private String expire_seconds;//二维码的有效时间
+	
+	public String getUrl() {
+		return url;
+	}
+	public void setUrl(String url) {
+		this.url = url;
+	}
+	public String getTicket() {
+		return ticket;
+	}
+	public void setTicket(String ticket) {
+		this.ticket = ticket;
+	}
+	public String getExpire_seconds() {
+		return expire_seconds;
+	}
+	public void setExpire_seconds(String expire_seconds) {
+		this.expire_seconds = expire_seconds;
+	}
+	
+	
+}

+ 46 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/Token.java

@@ -0,0 +1,46 @@
+package com.iamberry.rst.core.tools;
+
+import java.util.Date;
+
+/**
+ * accessToken保存时间
+ * @author Administrator
+ *
+ */
+public class Token implements java.io.Serializable{
+
+	private static final long serialVersionUID = 8948377487525030011L;
+	private String tokenId;
+	private String token;
+	private Date endDate;
+	private String appid;
+	public String getTokenId() {
+		return tokenId;
+	}
+	public void setTokenId(String tokenId) {
+		this.tokenId = tokenId;
+	}
+	public String getToken() {
+		return token;
+	}
+	public void setToken(String token) {
+		this.token = token;
+	}
+	public Date getEndDate() {
+		return endDate;
+	}
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+	public String getAppid() {
+		return appid;
+	}
+	public void setAppid(String appid) {
+		this.appid = appid;
+	}
+	@Override
+	public String toString() {
+		return "Token [tokenId=" + tokenId + ", token=" + token + ", endDate="
+				+ endDate + "]";
+	}
+}

+ 245 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/WeixinUtil.java

@@ -0,0 +1,245 @@
+package com.iamberry.rst.core.tools;
+
+import com.iamberry.cache.LocalCache;
+import com.iamberry.wechat.tools.MyX509TrustManager;
+import com.iamberry.wechat.tools.NameUtils;
+import net.sf.json.JSONObject;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.ConnectException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.logging.Logger;
+
+/**
+ * 公众平台通用接口工具类
+ * 
+ * @author fzh
+ * 
+ */
+public class WeixinUtil {
+	
+	
+	// 日志
+	private  static org.slf4j.Logger logger = LoggerFactory.getLogger(WeixinUtil.class);
+	
+	// 发送短信模板的URL
+	private static String sendTemplate = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
+	
+	// token缓存
+	private static LocalCache<String, Token> cache = new LocalCache<>(2);
+	
+	/**
+	 * 网页授权获取access_token
+	 *
+	 * @param code
+	 * @return
+	 */
+	public static JSONObject getParamByOauth2(String code) {
+		JSONObject jsonObject = null;
+		try {
+			// 得到access_token和openid
+			jsonObject = httpRequest(NameUtils.oauth2_getToken_url.replaceAll("CODE", code).replaceAll("APPID", NameUtils.getConfig("appId")).replaceAll("SECRET", NameUtils.getConfig("appSecret")), "GET", null);
+			if (null != jsonObject) {
+				return jsonObject;
+			}
+		} catch (Exception e) {
+			// 获取token失败
+			logger.error("获取token失败 errcode:{} errmsg:{}" + jsonObject.getInt("errcode") + jsonObject.getString("errmsg"));
+		}
+		return null;
+	}
+
+	/**
+	 * 发起https请求并获取结果
+	 *
+	 * @param requestUrl
+	 *            请求地址
+	 * @param requestMethod
+	 *            请求方式(GET/POST)
+	 * @param outputStr
+	 *            提交的数据
+	 * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
+	 *         java.lang.ClassCastException:
+	 *         sun.net.www.protocol.http.HttpURLConnection cannot be cast to
+	 *         javax.net.ssl.HttpsURLConnection
+	 */
+	public static JSONObject httpRequest(String requestUrl,
+			String requestMethod, String outputStr) {
+		JSONObject jsonObject = null;
+		StringBuffer buffer = new StringBuffer();
+		try {
+			// 创建SSLContext对象,并使用我们指定的信任管理器初始化
+			TrustManager[] tm = { new MyX509TrustManager() };
+			SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
+			sslContext.init(null, tm, new java.security.SecureRandom());
+			// 从上述SSLContext对象中得到SSLSocketFactory对象
+			SSLSocketFactory ssf = sslContext.getSocketFactory();
+
+			URL url = new URL(requestUrl);
+			HttpsURLConnection httpUrlConn = (HttpsURLConnection) url
+					.openConnection();
+			httpUrlConn.setSSLSocketFactory(ssf);
+
+			httpUrlConn.setDoOutput(true);
+			httpUrlConn.setDoInput(true);
+			httpUrlConn.setUseCaches(false);
+
+			// 设置请求方式(GET/POST)
+			httpUrlConn.setRequestMethod(requestMethod);
+			if ("GET".equalsIgnoreCase(requestMethod))
+				httpUrlConn.connect();
+
+			// 当有数据需要提交时
+			if (null != outputStr) {
+				OutputStream outputStream = httpUrlConn.getOutputStream();
+				// 注意编码格式,防止中文乱码
+				outputStream.write(outputStr.getBytes("UTF-8"));
+				outputStream.close();
+			}
+
+			// 将返回的输入流转换成字符串
+			InputStream inputStream = httpUrlConn.getInputStream();
+			InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
+			BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+
+			String str = null;
+			while ((str = bufferedReader.readLine()) != null) {
+				buffer.append(str);
+			}
+			bufferedReader.close();
+			inputStreamReader.close();
+			// 释放资源
+			inputStream.close();
+			inputStream = null;
+			httpUrlConn.disconnect();
+			jsonObject = JSONObject.fromObject(buffer.toString());
+		} catch (ConnectException ce) {
+			Logger.getAnonymousLogger().info("Weixin server connection timed out.");
+		} catch (Exception e) {
+			Logger.getAnonymousLogger().info("信任管理器请求时..." + e);
+			Logger.getAnonymousLogger().info("jsonObject..." + jsonObject);
+		}
+		return jsonObject;
+	}
+
+	/**
+	 * 获取access_token
+	 *
+	 * @param appid
+	 *            凭证
+	 * @param appsecret
+	 *            密钥
+	 * @return
+	 */
+	public static AccessToken getAccessToken(String appid, String appsecret) {
+
+		// 根据public No查询access_token
+		Token token = cache.get(NameUtils.getConfig("pubNo"));
+
+		AccessToken accessToken = null;
+		//判断数据库中是否存在token
+		if (token != null) {
+			//判断token是否失效
+			Date date = new Date();
+			if (date.getTime() < token.getEndDate().getTime()) {
+				accessToken = new AccessToken();
+				accessToken.setExpiresIn(7200);
+				accessToken.setToken(token.getToken());
+				return accessToken;
+			} else {
+				String requestUrl = NameUtils.access_token_url.replace("APPID", NameUtils.getConfig("appId")).replace("APPSECRET", NameUtils.getConfig("appSecret"));
+				JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
+				// 如果请求成功
+				if (null != jsonObject) {
+					try {
+						accessToken = new AccessToken();
+						accessToken.setToken(jsonObject.getString("access_token"));
+						accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
+						token.setToken(accessToken.getToken());
+						token.setEndDate(new Date(date.getTime() + 6500000));
+						token.setAppid(NameUtils.getConfig("pubNo"));
+						try {
+							cache.put(NameUtils.getConfig("pubNo"), token);
+						} catch (Exception e) {
+							logger.error(e.getMessage());
+						}
+						return accessToken;
+					} catch (Exception e) {
+						accessToken = null;
+						// 获取token失败
+						logger.error("获取token失败 errcode:{} errmsg:{}" + jsonObject.getInt("errcode") + jsonObject.getString("errmsg"));
+					}
+				}
+			}
+		} else {
+			String requestUrl = NameUtils.access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
+			JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
+			// 如果请求成功
+			if (null != jsonObject) {
+				try {
+					accessToken = new AccessToken();
+					accessToken.setToken(jsonObject.getString("access_token"));
+					accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
+
+					token = new Token();
+					token.setToken(accessToken.getToken());
+					token.setEndDate(new Date(new Date().getTime() + 6500000));
+					token.setAppid(NameUtils.getConfig("pubNo"));
+
+					try {
+						cache.put(NameUtils.getConfig("pubNo"), token);
+					} catch (Exception e) {
+						// 更新失败
+						logger.error(e.getMessage());
+					}
+					return accessToken;
+				} catch (Exception e) {
+					accessToken = null;
+					// 获取token失败
+					logger.error("获取token失败 errcode:{} errmsg:{}" + jsonObject.getInt("errcode") + jsonObject.getString("errmsg"));
+				}
+			}
+		}
+		return accessToken;
+	}
+
+
+
+	/**
+	 * 创建二维码
+	 *
+	 * @return
+	 */
+	public static QRCJson createQrcode(String json) {
+		QRCJson qrcJson = new QRCJson();
+		try {
+			AccessToken at = getAccessToken(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"));
+			if (at != null) {
+				String token = at.getToken();
+				JSONObject jsonObject = httpRequest(NameUtils.get_token_url.replaceAll("TOKEN", token), "POST", json);
+				if (jsonObject != null) {
+					String ticket = URLEncoder.encode(jsonObject.getString("ticket"), "UTF-8");
+					qrcJson.setTicket(ticket);
+					qrcJson.setUrl(NameUtils.show_qrcode_url + ticket);
+					if (json.contains("expire_seconds")) {// 临时二维码才有过期时间
+						qrcJson.setExpire_seconds(jsonObject.getString("expire_seconds"));
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return qrcJson;
+	}
+
+}

+ 12 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/DeviceService.java

@@ -0,0 +1,12 @@
+package com.iamberry.rst.faces.pts;
+
+import com.iamberry.rst.core.pts.PtsDevice;
+
+/**
+ * 设备管理service
+ * Created by LJK on 2017/8/29.
+ */
+public interface DeviceService {
+    //获取单个设备信息
+    PtsDevice getDevice(Integer deviceId);
+}

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/EquipmentService.java

@@ -0,0 +1,7 @@
+package com.iamberry.rst.faces.pts;
+
+/**
+ * Created by Administrator on 2017/8/29.
+ */
+public interface EquipmentService {
+}

+ 15 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineLogsService.java

@@ -0,0 +1,15 @@
+package com.iamberry.rst.faces.pts;
+
+import com.iamberry.rst.core.pts.PtsMachineLogs;
+
+/**
+ * 机器生产日志service
+ * Created by LJK on 2017/8/29.
+ */
+public interface MachineLogsService {
+    //添加生产日志
+    Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
+
+    //修改生产日志
+    Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
+}

+ 23 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java

@@ -0,0 +1,23 @@
+package com.iamberry.rst.faces.pts;
+
+import com.iamberry.rst.core.order.Order;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.PtsMachine;
+
+import java.util.List;
+
+/**
+ * 机器管理service
+ * Created by LJK on 2017/8/29.
+ */
+public interface MachineService {
+    //新增机器信息
+    Integer addMachine(PtsMachine ptsMachine);
+
+    //修改机器信息
+    Integer updateMachine(PtsMachine ptsMachine);
+
+    //查询机器列表
+    PagedResult<PtsMachine> listMachine(int pageNO, int pageSize, PtsMachine ptsMachine, boolean isTotalNum);
+}

+ 50 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/ProduceService.java

@@ -0,0 +1,50 @@
+package com.iamberry.rst.faces.pts;
+
+import com.iamberry.rst.core.pts.ProcessNode;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
+
+import java.util.List;
+
+/**
+ * 生产产品管理service
+ * Created by wangxiaoming on 2017/8/28.
+ */
+public interface ProduceService {
+
+    //获取生产产品列表
+    List<Produce> getProduceList();
+
+    //获取生产产品,产品工序,工序节点 --
+    List<Produce> getAllProduceList(Integer employeeId);
+
+    //获取单个产品信息
+    Produce getProduce(String produceNo);
+
+    //获取单个产品
+    Produce getProduce(Produce produce);
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcess(Integer produceId,String processNo);
+
+    //获取单个工序选项信息
+    ProcessNode getprocessNode(Integer ProcessId,String nodeNo);
+
+    //获取所有的工序
+    List<ProduceProcess> listProduceProcess(ProduceProcess produceProcess);
+
+    //添加Produce
+    Integer saveProduce(Produce produce);
+
+<<<<<<< HEAD
+    //添加产品工序
+    Integer saveProcessNodeList(List<ProcessNode> processNodeList);
+=======
+    /**
+     * 关联查询产品和产品工序
+     * @param produce
+     * @return
+     */
+    List<Produce> listSelectProduct(Produce produce);
+>>>>>>> eb685e74ac2f2e0aab3c535e4364bb65e2af746f
+}

+ 21 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsEmployeeService.java

@@ -0,0 +1,21 @@
+package com.iamberry.rst.faces.pts;
+
+import com.iamberry.rst.core.pts.PtsEmployee;
+
+/**
+ * pts员工信息接口
+ * Created by wangxiaoming on 2017/8/29.
+ */
+public interface PtsEmployeeService {
+    /**
+     * 获取员工信息
+     */
+    PtsEmployee getPtsEmployee(PtsEmployee ptsEmployee);
+
+    /**
+     * 根据id查询单个员工信息
+     * @param employeeId
+     * @return
+     */
+    PtsEmployee getPtsEmployeeById(Integer employeeId);
+}

+ 14 - 0
watero-rst-service/pom.xml

@@ -35,5 +35,19 @@
                 <filtering>false</filtering>
             </resource>
         </resources>
+        <finalName>watero-rent-web</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                </configuration>
+            </plugin>
+        </plugins>
     </build>
+
+
 </project>

+ 26 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/DeviceServiceImpl.java

@@ -0,0 +1,26 @@
+package com.iamberry.rst.service.pts;
+
+import com.iamberry.rst.core.pts.PtsDevice;
+import com.iamberry.rst.faces.pts.DeviceService;
+import com.iamberry.rst.faces.pts.MachineService;
+import com.iamberry.rst.service.pts.mapper.DeviceMapper;
+import com.iamberry.rst.service.pts.mapper.MachineMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 设备管理
+ * Created by LJK on 2017/8/28.
+ */
+@Service
+public class DeviceServiceImpl implements DeviceService {
+
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+    @Override
+    public PtsDevice getDevice(Integer deviceId) {
+        return deviceMapper.getDevice(deviceId);
+    }
+}

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/EquipmentServiceImpl.java

@@ -0,0 +1,7 @@
+package com.iamberry.rst.service.pts;
+
+/**
+ * Created by Administrator on 2017/8/29.
+ */
+public class EquipmentServiceImpl {
+}

+ 31 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineLogsServiceImpl.java

@@ -0,0 +1,31 @@
+package com.iamberry.rst.service.pts;
+
+import com.iamberry.rst.core.pts.PtsMachineLogs;
+import com.iamberry.rst.faces.pts.DeviceService;
+import com.iamberry.rst.faces.pts.MachineLogsService;
+import com.iamberry.rst.service.pts.mapper.DeviceMapper;
+import com.iamberry.rst.service.pts.mapper.MachineLogsMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 机器生产流程日志管理
+ * Created by LJK on 2017/8/28.
+ */
+@Service
+public class MachineLogsServiceImpl implements MachineLogsService {
+
+    @Autowired
+    private MachineLogsMapper machineLogsMapper;
+
+    @Override
+    public Integer addMachineLogs(PtsMachineLogs ptsMachineLogs) {
+        return machineLogsMapper.addMachineLogs(ptsMachineLogs);
+    }
+
+    @Override
+    public Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs) {
+        return machineLogsMapper.updateMachineLogs(ptsMachineLogs);
+    }
+}

+ 42 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java

@@ -0,0 +1,42 @@
+package com.iamberry.rst.service.pts;
+
+import com.github.pagehelper.PageHelper;
+import com.iamberry.rst.core.order.Order;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsMachine;
+import com.iamberry.rst.faces.pts.MachineService;
+import com.iamberry.rst.service.pts.mapper.MachineMapper;
+import com.iamberry.rst.util.PageUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * 机器管理
+ * Created by LJK on 2017/8/28.
+ */
+@Service
+public class MachineServiceImpl implements MachineService {
+
+    @Autowired
+    private MachineMapper machineMapper;
+
+    @Override
+    public Integer addMachine(PtsMachine ptsMachine) {
+        return machineMapper.addMachine(ptsMachine);
+    }
+
+    @Override
+    public Integer updateMachine(PtsMachine ptsMachine) {
+        return machineMapper.updateMachine(ptsMachine);
+    }
+
+    @Override
+    public PagedResult<PtsMachine> listMachine(int pageNO, int pageSize, PtsMachine ptsMachine, boolean isTotalNum) {
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        List<PtsMachine> list = machineMapper.listMachine(ptsMachine);
+        return PageUtil.getPage(list);
+    }
+}

+ 113 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java

@@ -0,0 +1,113 @@
+package com.iamberry.rst.service.pts;
+
+import com.iamberry.rst.core.pts.ProcessNode;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
+import com.iamberry.rst.faces.pts.ProduceService;
+import com.iamberry.rst.service.product.mapper.ProductMapper;
+import com.iamberry.rst.service.pts.mapper.ProduceMapper;
+import com.iamberry.rst.util.ProduceNoUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * 生产产品管理
+ * Created by wangxiaoming on 2017/8/28.
+ */
+@Service
+public class ProduceServiceImpl implements ProduceService {
+
+    @Autowired
+    private ProduceMapper produceMapper;
+
+    //获取生产产品列表
+    public  List<Produce> getProduceList() {
+        return produceMapper.getProduceList();
+    }
+
+
+    //获取生产产品,产品工序,工序节点
+    public List<Produce> getAllProduceList(Integer employeeId){
+        return produceMapper.getAllProduceList(employeeId);
+    }
+
+    @Override
+    public Produce getProduce(String produceNo) {
+        return produceMapper.getProduce(produceNo);
+    }
+
+    //获取单个产品
+    public Produce getProduce(Produce produce){
+        return produceMapper.getProduceByPro(produce);
+    }
+
+    @Override
+    public ProduceProcess getProduceProcess(Integer produceId,String processNo) {
+        ProduceProcess produceProcess = new ProduceProcess();
+        produceProcess.setProduceId(produceId);
+        produceProcess.setProcessNo(processNo);
+        return produceMapper.getProduceProcess(produceProcess);
+    }
+
+    @Override
+    public ProcessNode getprocessNode(Integer ProcessId,String nodeNo) {
+        ProcessNode processNode = new ProcessNode();
+        processNode.setProcessId(ProcessId);
+        processNode.setNodeNo(nodeNo);
+        return produceMapper.getprocessNode(processNode);
+    }
+
+    @Override
+    public List<ProduceProcess> listProduceProcess(ProduceProcess produceProcess) {
+        return produceMapper.selectProcessList(produceProcess);
+    }
+
+    //添加产品
+    public Integer saveProduce(Produce produce){
+        produce.setProduceNo(ProduceNoUtil.getProduceNo());
+        produce.setProduceStatus(1);
+        int flag = produceMapper.saveProduce(produce);
+        Integer produceId = produce.getProduceId(); // 获取产品主键
+
+        for (int i=0; i<produce.getProcess().size();i++){
+            produce.getProcess().get(i).setProduceId(produceId);    //产品id
+            produce.getProcess().get(i).setProcessNo(ProduceNoUtil.getProcessNo(i));  //工序编号
+            produce.getProcess().get(i).setProcessStatus(1);    //状态
+            produce.getProcess().get(i).setProcessSort(i);  //排序字段
+
+            ProduceProcess produceProcess = produce.getProcess().get(i);
+            this.saveProduceProcess(produceProcess);
+            Integer processId = produceProcess.getProcessId();  //获取工序主键
+            for(int j=0; j<produceProcess.getNodes().size();j++){
+                produceProcess.getNodes().get(j).setProduceId(produceId);
+                produceProcess.getNodes().get(j).setProcessId(processId);
+                produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
+            }
+            this.saveProcessNodeList(produceProcess.getNodes());
+        }
+        return flag;
+    }
+
+    //添加产品工序
+    public Integer saveProduceProcess(ProduceProcess produceProcesses){
+        int flag = produceMapper.saveProduceProcess(produceProcesses);
+        return flag;
+    }
+
+    //添加产品工序操作
+    public Integer saveProcessNodeList(List<ProcessNode> processNodeList){
+        int flag = produceMapper.saveProcessNodeList(processNodeList);
+        return flag;
+    }
+
+
+
+
+    @Override
+    public List<Produce> listSelectProduct(Produce produce) {
+        return produceMapper.listSelectProduct(produce);
+    }
+}

+ 35 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsEmployeeServiceImpl.java

@@ -0,0 +1,35 @@
+package com.iamberry.rst.service.pts;
+
+import com.iamberry.rst.core.pts.PtsEmployee;
+import com.iamberry.rst.faces.pts.PtsEmployeeService;
+import com.iamberry.rst.service.pts.mapper.PtsEmployeeMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * pts员工信息接口实现
+ * Created by wangxiaoming on 2017/8/29.
+ */
+@Service
+public class PtsEmployeeServiceImpl implements PtsEmployeeService {
+
+    @Autowired
+    private PtsEmployeeMapper ptsEmployeeMapper;
+
+    /**
+     * 获取员工信息
+     *
+     * @param ptsEmployee
+     * @return
+     */
+    public PtsEmployee getPtsEmployee(PtsEmployee ptsEmployee) {
+        return ptsEmployeeMapper.getPtsEmployee(ptsEmployee);
+    }
+
+    @Override
+    public PtsEmployee getPtsEmployeeById(Integer employeeId) {
+        return ptsEmployeeMapper.getPtsEmployeeById(employeeId);
+    }
+
+
+}

+ 12 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/DeviceMapper.java

@@ -0,0 +1,12 @@
+package com.iamberry.rst.service.pts.mapper;
+
+import com.iamberry.rst.core.pts.PtsDevice;
+
+/**
+ * 设备管理
+ * Created by LJK on 2017/8/29.
+ */
+public interface DeviceMapper {
+    //获取单个设备信息
+    PtsDevice getDevice(Integer deviceId);
+}

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/EquipmentMapper.java

@@ -0,0 +1,7 @@
+package com.iamberry.rst.service.pts.mapper;
+
+/**
+ * Created by Administrator on 2017/8/29.
+ */
+public interface EquipmentMapper {
+}

+ 15 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineLogsMapper.java

@@ -0,0 +1,15 @@
+package com.iamberry.rst.service.pts.mapper;
+
+import com.iamberry.rst.core.pts.PtsMachineLogs;
+
+/**
+ * 机器生产流程日志管理
+ * Created by LJK on 2017/8/29.
+ */
+public interface MachineLogsMapper {
+        //添加生产日志
+        Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
+
+        //修改生产日志
+        Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
+}

+ 21 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java

@@ -0,0 +1,21 @@
+package com.iamberry.rst.service.pts.mapper;
+
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.PtsMachine;
+
+import java.util.List;
+
+/**
+ * 机器管理
+ * Created by LJK on 2017/8/29.
+ */
+public interface MachineMapper {
+    //新增机器信息
+    Integer addMachine(PtsMachine ptsMachine);
+
+    //修改机器信息
+    Integer updateMachine(PtsMachine ptsMachine);
+
+    //查询机器列表
+    List<PtsMachine> listMachine(PtsMachine ptsMachine);
+}

+ 54 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java

@@ -0,0 +1,54 @@
+package com.iamberry.rst.service.pts.mapper;
+
+import com.iamberry.rst.core.pts.ProcessNode;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
+
+import java.util.List;
+
+/**
+ * 生产产品管理
+ * Created by wangxiaoming on 2017/8/28.
+ */
+public interface ProduceMapper {
+
+    //获取生产产品列表
+    List<Produce> getProduceList();
+
+    //获取生产产品,产品工序,工序节点
+    List<Produce> getAllProduceList(Integer employeeId);
+
+    //获取单个产品信息
+    Produce getProduce(String produceNo);
+
+    //获取单个产品
+    Produce getProduceByPro(Produce produce);
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcess(ProduceProcess produceProcess);
+
+    //获取单个工序选项信息
+    ProcessNode getprocessNode(ProcessNode processNode);
+
+    //获取当前产品所有工序信息
+    List<ProduceProcess> listProduceProcess(Integer produceId);
+
+    /**
+     * 关联查询产品和产品工序
+     * @param produce
+     * @return
+     */
+    List<Produce> listSelectProduct(Produce produce);
+
+    //获取当前产品所有工序信息
+    List<ProduceProcess> selectProcessList(ProduceProcess produceProcess);
+
+    //添加产品
+    Integer saveProduce(Produce produce);
+
+    //添加产品工序
+    Integer saveProduceProcess(ProduceProcess produceProcesses);
+
+    //添加工序节点
+    Integer saveProcessNodeList(List<ProcessNode> processNodeList);
+}

+ 24 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsEmployeeMapper.java

@@ -0,0 +1,24 @@
+package com.iamberry.rst.service.pts.mapper;
+
+import com.iamberry.rst.core.pts.PtsEmployee;
+
+/**
+ * pts员工信息
+ * Created by wangxiaoming on 2017/8/29.
+ */
+public interface PtsEmployeeMapper {
+
+    /**
+     * 获取员工信息
+     * @param ptsEmployee
+     * @return
+     */
+    PtsEmployee getPtsEmployee(PtsEmployee ptsEmployee);
+
+    /**
+     * 根据id查询单个员工信息
+     * @param employeeId
+     * @return
+     */
+    PtsEmployee getPtsEmployeeById(Integer employeeId);
+}

+ 20 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/deviceMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.DeviceMapper">
+    <select id="getDevice" parameterType="Integer" resultType="PtsDevice">
+        SELECT
+        device_id AS deviceId,
+        device_number AS deviceNumber,
+        device_name AS deviceName,
+        device_date AS  deviceDate,
+        device_status AS deviceStatus,
+        device_remake AS  deviceRemake,
+        device_create_time AS deviceCreateTime,
+        device_update_time AS deviceUpdateTime
+        FROM
+        tb_rst_pts_device
+        WHERE
+        device_id = #{deviceId}
+    </select>
+
+</mapper>

+ 0 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/equipmentMapper.xml


+ 32 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineLogsMapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.MachineLogsMapper">
+    <insert id="addMachineLogs" parameterType="PtsMachineLogs" useGeneratedKeys="true" keyProperty="logsId">
+        INSERT INTO tb_rst_pts_machine_logs
+        (machine_id,employee_id,produce_id,
+        process_id,device_id,employee_name,
+        produce_name,process_name,device_name
+        ,logs_process_status,logs_error_type,
+        logs_process_prompt,logs_process_time,
+        logs_create_time)
+        VALUES
+        (#{machineId},#{employeeId},#{produceId},
+        #{processId},#{deviceId},#{employeeName},#{produceName},
+        #{processName},#{deviceName},#{logsProcessStatus},#{logsErrorType}
+        ,#{logsProcessPrompt},#{logsProcessTime},#{logsCreateTime})
+    </insert>
+    <update id="updateMachineLogs" >
+        UPDATE tb_rst_pts_machine_logs SET
+        <if test="logsProcessPrompt != null and logsProcessPrompt != ''" >
+            logs_process_prompt = #{logsProcessPrompt},
+        </if>
+        <if test="logsErrorType != null and logsErrorType != ''" >
+            logs_error_type = #{logsErrorType}
+        </if>
+        <where>
+            <if test="logsId != null and logsId != ''">
+                logs_id = #{logsId}
+            </if>
+        </where>
+    </update>
+</mapper>

+ 82 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineMapper.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.MachineMapper">
+    <insert id="addMachine" parameterType="PtsMachine" useGeneratedKeys="true" keyProperty="machineId">
+        INSERT INTO tb_rst_pts_machine
+        (machine_qrcode,machine_barcode,machine_sales_state,
+        machine_status,machine_produced_time,machine_is_print,
+        machine_compound_img,machine_process_state,machine_create_time)
+        VALUES
+        (#{machineQrcode},#{machineBarcode},2,#{machineStatus},
+        #{machineProducedTime},#{machineIsPrint},#{machineCompoundImg},#{machineProcessState},
+        #{machineCreateTime})
+    </insert>
+
+    <update id="updateMachine" parameterType="PtsMachine" >
+        UPDATE tb_rst_pts_machine
+        SET
+        <if test="machineSalesDate != null and machineSalesDate != ''" >
+            machine_sales_date = #{machineSalesDate},
+        </if>
+        <if test="machineSalesState != null and machineSalesState != ''" >
+            machine_sales_state = #{machineSalesState},
+        </if>
+        <if test="machineStatus != null and machineStatus != ''" >
+            machine_status = #{machineStatus},
+        </if>
+        <if test="machineIsPrint != null and machineIsPrint != ''" >
+            machine_is_print = #{machineIsPrint},
+        </if>
+        <if test="machineCompoundImg != null and machineCompoundImg != ''" >
+            machine_compound_img = #{machineCompoundImg},
+        </if>
+        <if test="machineProcessState != null and machineCompoundImg != ''" >
+            machine_process_state = #{machineProcessState},
+        </if>
+        <if test="machineSoftwareVersion != null and machineSoftwareVersion != ''" >
+            machine_software_version = #{machineSoftwareVersion},
+        </if>
+        <if test="machineHardwareVersion != null and machineHardwareVersion != ''" >
+            machine_hardware_version = #{machineHardwareVersion},
+        </if>
+        <if test="machineUpdateTime != null and machineUpdateTime != ''" >
+            machine_update_time = #{machineUpdateTime}
+        </if>
+        <where>
+            <if test="machineId != null">
+                machine_id = #{machineId}
+            </if>
+        </where>
+    </update>
+
+    <select id="listMachine" parameterType="PtsMachine" resultType="PtsMachine">
+        SELECT
+         machine_id machineId,
+         machine_qrcode machineQrcode,
+         machine_barcode machineBarcode,
+         machine_sales_date machineSalesDate,
+         machine_sales_state machineSalesState,
+         machine_status machineStatus,
+         machine_produced_time machineProducedTime,
+         machine_sub_time machineSubTime,
+         machine_is_print machineIsPrint,
+         machine_compound_img machineCompoundImg,
+         machine_process_state machineProcessState,
+         machine_software_version machineSoftwareVersion,
+         machine_hardware_version machineHardwareVersion,
+         machine_create_time machineCreateTime,
+         machine_update_time machineUpdateTime
+         FROM  tb_rst_pts_machine
+        <where>
+            <if test="machineBarcode != null">
+                machine_barcode = #{machineBarcode}
+            </if>
+            <if test="machineIsPrint != null">
+               AND machine_is_print = #{machineIsPrint}
+            </if>
+            <if test="machineProcessState != null">
+                AND machine_process_state = #{machineProcessState}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 296 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/produceMapper.xml

@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.ProduceMapper">
+
+    <select id="getProduceList" parameterType="Produce" resultType="Produce">
+        SELECT
+            tb_rst_pts_produce.produce_id AS produceId,
+            tb_rst_pts_produce.produce_name AS produceName,
+            tb_rst_pts_produce.produce_status AS  produceStatus,
+            tb_rst_pts_produce.produce_remake AS produceRemake,
+            tb_rst_pts_produce.produce_create_time AS  produceCreateTime,
+            tb_rst_pts_produce.produce_update_time AS produceUpdateTime
+        FROM
+            tb_rst_pts_produce
+    </select>
+
+
+    <!--获取产品工序节点的接口sql-start-->
+    <resultMap id="ProduceMap" type="com.iamberry.rst.core.pts.Produce">
+        <id column="produce_id" property="produceId" />
+        <result column="produce_no" property="produceNo" />
+        <result column="produce_name" property="produceName" />
+        <result column="produce_status" property="produceStatus" />
+        <result column="produce_remake" property="produceRemake" />
+        <result column="produce_create_time" property="produceCreateTime" />
+        <result column="produce_update_time" property="produceUpdateTime" />
+        <result column="employee_id" property="employeeId" />
+        <collection property="process" column="{produceId = produce_id ,employeeId = employee_id}" javaType="ArrayList"
+                    ofType="com.iamberry.rst.core.pts.ProduceProcess" select="getProduceProcessList"/>
+    </resultMap>
+    <resultMap id="ProduceProcessMap" type="com.iamberry.rst.core.pts.ProduceProcess">
+        <id column="process_id" property="processId"/>
+        <result column="produce_id" property="produceId"/>
+        <result column="process_no" property="processNo"/>
+        <result column="process_name" property="processName"/>
+        <result column="employee_id" property="employeeId"/>
+        <result column="drive_id" property="driveId"/>
+        <result column="process_status" property="processStatus"/>
+        <result column="process_type" property="processType"/>
+        <result column="process_sort" property="processSort"/>
+        <result column="process_remake" property="processRemake"/>
+        <result column="process_create_time" property="processCreateTime"/>
+        <result column="process_update_time" property="processUpdateTime"/>
+        <collection property="nodes" column="process_id" javaType="ArrayList"
+                    ofType="com.iamberry.rst.core.pts.ProcessNode" select="getProcessNodeList"/>
+    </resultMap>
+    <resultMap id="ProcessNodeMap" type="com.iamberry.rst.core.pts.ProcessNode">
+        <id column="node_id" property="nodeId"/>
+        <result column="produce_id" property="produceId"/>
+        <result column="process_id" property="processId"/>
+        <result column="node_no" property="nodeNo"/>
+        <result column="node_status" property="nodeStatus"/>
+        <result column="node_des" property="nodeDes"/>
+        <result column="node_create_time" property="nodeCreateTime"/>
+        <result column="node_update_time" property="nodeUpdateTime"/>
+    </resultMap>
+    <select id="getAllProduceList" parameterType="java.lang.Integer" resultMap="ProduceMap">
+        SELECT
+        tp.produce_id,
+        tp.produce_no,
+        tp.produce_name,
+        tp.produce_status,
+        tp.produce_remake,
+        tp.produce_create_time,
+        tp.produce_update_time,
+        ts.employee_id
+        FROM
+        tb_rst_pts_produce tp
+        LEFT JOIN tb_rst_pts_produce_process ts ON tp.produce_id = ts.produce_id AND ts.employee_id = #{employeeId}
+        WHERE  tp.produce_status = 1
+        GROUP BY tp.produce_id
+    </select>
+    <select id="getProduceProcessList" parameterType="java.util.HashMap" resultMap="ProduceProcessMap">
+        SELECT
+        ts.process_id,
+        ts.produce_id,
+        ts.process_no,
+        ts.process_name,
+        ts.employee_id,
+        ts.drive_id,
+        ts.process_status,
+        ts.process_type,
+        ts.process_sort,
+        ts.process_remake,
+        ts.process_create_time,
+        ts.process_update_time
+        FROM
+        tb_rst_pts_produce_process ts
+        WHERE  ts.produce_id = #{produceId}
+        AND ts.employee_id = #{employeeId}
+        AND ts.process_status = 1
+        ORDER BY ts.process_sort
+    </select>
+    <select id="getProcessNodeList" parameterType="java.lang.Integer" resultMap="ProcessNodeMap">
+        SELECT
+        tn.node_id,
+        tn.produce_id,
+        tn.process_id,
+        tn.node_no,
+        tn.node_status,
+        tn.node_des,
+        tn.node_create_time,
+        tn.node_update_time
+        FROM
+        tb_rst_pts_process_node tn
+        WHERE  tn.process_id = #{processId}
+    </select>
+    <!--获取产品工序节点的接口sql-end-->
+
+    <!--根据产品编号获取产品信息-->
+    <select id="getProduce" parameterType="String" resultType="Produce">
+        SELECT
+        tb_rst_pts_produce.produce_id AS produceId,
+        tb_rst_pts_produce.produce_no AS produceNo,
+        tb_rst_pts_produce.produce_name AS produceName,
+        tb_rst_pts_produce.produce_status AS  produceStatus,
+        tb_rst_pts_produce.produce_remake AS produceRemake,
+        tb_rst_pts_produce.produce_create_time AS  produceCreateTime,
+        tb_rst_pts_produce.produce_update_time AS produceUpdateTime
+        FROM
+        tb_rst_pts_produce
+        WHERE
+        produce_no = #{produceNo}
+    </select>
+
+    <select id="getProduceProcess" parameterType="ProduceProcess" resultType="ProduceProcess">
+        SELECT
+        pp.process_id AS processId,
+        pp.produce_id AS produceId,
+        pp.process_no AS processNo,
+        pp.process_name AS  processName,
+        pp.employee_id AS employeeId,
+        pp.drive_id AS  driveId,
+        pp.process_status AS processStatus,
+        pp.process_sort AS processSort,
+        pp.process_remake AS processRemake,
+        pp.process_create_time AS processCreateTime,
+        pp.process_update_time AS processUpdateTime,
+        pp.process_type AS processType
+        FROM
+        tb_rst_pts_produce_process pp
+        WHERE
+        pp.produce_id = #{produceId}
+        AND
+        pp.process_no = #{processNo}
+    </select>
+
+    <select id="getprocessNode" parameterType="ProcessNode" resultType="ProcessNode">
+        SELECT
+        node_id AS nodeId,
+        produce_id AS produceId,
+        process_id AS processId,
+        node_no AS  nodeNo,
+        node_status AS nodeStatus,
+        node_des AS  nodeDes,
+        node_create_time AS nodeCreateTime,
+        node_update_time AS nodeUpdateTime
+        FROM
+        tb_rst_pts_process_node
+        WHERE
+        process_id = #{processId}
+        AND
+        node_no = #{nodeNo}
+    </select>
+
+    <select id="listProduceProcess" parameterType="ProduceProcess" resultType="ProduceProcess">
+        SELECT
+        pp.process_id AS processId,
+        pp.produce_id AS produceId,
+        pp.process_no AS processNo,
+        pp.process_name AS  processName,
+        pp.employee_id AS employeeId,
+        pp.drive_id AS  driveId,
+        pp.process_status AS processStatus,
+        pp.process_sort AS processSort,
+        pp.process_remake AS processRemake,
+        pp.process_create_time AS processCreateTime,
+        pp.process_update_time AS processUpdateTime
+        FROM
+        tb_rst_pts_produce_process pp
+        WHERE
+        pp.produce_id = #{produceId}
+        order by id ACS
+    </select>
+
+
+    <insert id="saveProduce" parameterType="Produce" useGeneratedKeys="true"  keyProperty="produceId">
+        insert into tb_rst_pts_produce (produce_id,produce_no,produce_name,produce_status,produce_remake)
+        values (#{produceId},#{produceNo},#{produceName},#{produceStatus},#{produceRemake})
+    </insert>
+
+    <update id="updateProduce" parameterType="Produce" >
+        UPDATE tb_rst_pts_produce
+        SET
+        produce_no = #{produceNo},
+        produce_name = #{produceName},
+        produce_status = #{produceStatus},
+        produce_remake = #{produceRemake},
+        produce_create_time = #{produceCreateTime},
+        produce_update_time = #{produceUpdateTime}
+        WHERE
+        produce_id = #{produceId}
+    </update>
+
+    <insert id="saveProcessNodeList" parameterType="java.util.List" useGeneratedKeys="true">
+       insert into tb_rst_pts_process_node (node_id,produce_id ,process_id ,node_no ,node_status ,node_des )
+       values
+       <foreach collection="list" item="node" index="index" separator="," open="" close="">
+               (#{node.nodeId},#{node.produceId},#{node.processId},#{node.nodeNo},#{node.nodeStatus},#{node.nodeDes})
+       </foreach>
+    </insert>
+
+    <insert id="saveProduceProcess" parameterType="ProduceProcess" useGeneratedKeys="true" keyProperty="processId">
+        insert into tb_rst_pts_produce_process (process_id,produce_id ,process_no ,process_name ,employee_id ,drive_id ,process_status ,process_type,process_sort ,process_remake )
+        values
+            (#{processId},#{produceId},#{processNo},#{processName},#{employeeId},#{driveId},#{processStatus},#{processType},#{processSort},#{processRemake})
+    </insert>
+
+    <update id="updateProduceProcessList" parameterType="java.util.ArrayList" >
+        <foreach collection="process" item="pro" index="index" separator=";" open="" close="">
+            update tb_rst_pts_produce_process
+            set `process_no` = #{pro.processNo},`process_name` = #{pro.processName},`employee_id` = #{pro.employeeId},`drive_id` = #{pro.driveId},`process_status` = #{pro.processStatus},`process_type` = #{pro.processType},`process_sort` = #{pro.processSort},`process_remake` = #{pro.processRemake}
+            where  `process_id` = #{produceId}
+        </foreach>
+    </update>
+
+<<<<<<< HEAD
+
+    <select id="getProduceByPro" parameterType="Produce" resultType="Produce">
+        SELECT
+            produce_id AS produceId,
+=======
+    <!-- 关联查询产品和产品工序 -->
+    <select id="listSelectProduct" parameterType="Produce" resultMap="productListMap">
+        SELECT
+            produce_id AS produceId,
+            produce_no AS produceNo,
+>>>>>>> eb685e74ac2f2e0aab3c535e4364bb65e2af746f
+            produce_name AS produceName,
+            produce_status AS  produceStatus,
+            produce_remake AS produceRemake,
+            produce_create_time AS  produceCreateTime,
+            produce_update_time AS produceUpdateTime
+        FROM
+<<<<<<< HEAD
+            tb_rst_pts_produce
+
+    </select>
+
+
+
+=======
+        tb_rst_pts_produce
+        WHERE
+        produce_no = #{produceNo}
+    </select>
+
+    <resultMap type="Produce" id="productListMap">
+        <id column="produce_id" property="produceId"/>
+        <result column="produce_no" property="produceNo"/>
+        <result column="produce_name" property="produceName"/>
+        <result column="produce_status" property="produceStatus"/>
+        <result column="produce_remake" property="produceRemake"/>
+        <result column="produce_create_time" property="produceCreateTime"/>
+        <result column="produce_update_time" property="produceUpdateTime"/>
+        <collection property="process" column="produce_id" ofType="ProduceProcess" select="listSelectProduceProcess"/>
+    </resultMap>
+
+    <select id="listSelectProduceProcess" parameterType="Integer" resultType="ProduceProcess">
+       SELECT
+            ts.process_id,
+            ts.produce_id,
+            ts.process_no,
+            ts.process_name,
+            ts.employee_id,
+            ts.drive_id,
+            ts.process_status,
+            ts.process_sort,
+            ts.process_remake,
+            ts.process_create_time,
+            ts.process_update_time
+        FROM
+            tb_rst_pts_produce_process ts
+        WHERE
+          ts.produce_id = #{produceId}
+        AND
+          (ts.drive_id IS NULL OR ts.drive_id in (select
+                                                    device_id
+                                                  from
+                                                    tb_rst_pts_device
+                                                  where
+                                                    device_status = 0))
+    </select>
+>>>>>>> eb685e74ac2f2e0aab3c535e4364bb65e2af746f
+
+</mapper>

+ 49 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ptsEmployeeMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.PtsEmployeeMapper">
+
+    <select id="getPtsEmployee" parameterType="PtsEmployee" resultType="PtsEmployee">
+       SELECT
+            employee_id AS employeeId,
+            employee_no AS employeeNo,
+            employee_name AS employeeName,
+            employee_tel AS  employeeTel,
+            employee_state AS  employeeState,
+            employee_entry_date AS  employeeEntryDate,
+            employee_departure_date AS employeeDepartureDate ,
+            employee_post AS  employeePost,
+            employee_desc AS  employeeDesc,
+            employee_clear_power AS  employeeClearPower,
+            employee_create_time AS  employeeCreateTime,
+            employee_update_time AS  employeeUpdateTime
+        FROM
+            tb_rst_pts_employee
+        WHERE
+            <if test="employeeId !=null and employeeId !=''">
+                employee_id = #{employeeId}
+            </if>
+            <if test="employeeNo !=null and employeeNo !=''">
+                employee_no = #{employeeNo}
+            </if>
+    </select>
+
+    <select id="getPtsEmployeeById" parameterType="Integer" resultType="PtsEmployee">
+        SELECT
+         employee_id AS employeeId,
+         employee_no AS employeeNo,
+         employee_name AS employeeName,
+         employee_tel AS  employeeTel,
+         employee_state AS  employeeState,
+         employee_entry_date AS  employeeEntryDate,
+         employee_departure_date AS employeeDepartureDate ,
+         employee_post AS  employeePost,
+         employee_desc AS  employeeDesc,
+         employee_clear_power AS  employeeClearPower,
+         employee_create_time AS  employeeCreateTime,
+         employee_update_time AS  employeeUpdateTime
+        FROM
+        tb_rst_pts_employee
+        WHERE
+        employee_id = #{employeeId}
+    </select>
+</mapper>

+ 44 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java

@@ -0,0 +1,44 @@
+package com.iamberry.rst.util;
+
+/**
+ * 用于获取  产品,工序,节点编号
+ * Created by wangxiaoming on 2017/9/1.
+ */
+public class ProduceNoUtil {
+
+    private final static  String[] number = {"0","1","2","3","4"};
+
+    /**
+     * 获取产品编号
+     * @return
+     */
+    public static String getProduceNo(){
+        String num = "A";
+        return num;
+    }
+
+    /**
+     * 获取工序编号
+     * @return
+     */
+//    public static String getProcess(Integer produceId,Integer i){
+//        return number[i];
+//    }
+
+    /**
+     * 获取工序编号
+     * @return
+     */
+    public static String getProcessNo(Integer i){
+        return number[i];
+    }
+
+
+    /**
+     * 获取节点操作
+     * @return
+     */
+    public static String getNodeNo(Integer i){
+        return number[i];
+    }
+}

+ 15 - 0
watero-rst-web/pom.xml

@@ -115,4 +115,19 @@
             <version>1.0</version>
         </dependency>
     </dependencies>
+
+    <build>
+        <finalName>watero-rent-web</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 2 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/OrderTask.java

@@ -32,7 +32,8 @@ public class OrderTask implements InitializingBean {
     public void afterPropertiesSet() throws Exception {
     }
 
-    @Scheduled(cron = "0 0/4 * * * ?")//每*分钟执行一次
+   // @Scheduled(cron = "0 0/4 * * * ?")//每*分钟执行一次
+    @Scheduled(cron = "0 0 */2 * * ?")//每小时执行一次
     public void completeOrder() {
         logger.info("------------执行消息提醒,修改已处理的订单至已完成状态 start-----------");
         List<Order> orderList = orderService.listNoCompleteOrder();

+ 73 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java

@@ -0,0 +1,73 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.order.Order;
+import com.iamberry.rst.core.order.RentType;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsMachine;
+import com.iamberry.rst.faces.pts.*;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
+import java.util.List;
+
+/**
+ * Created by LJK on 2017/8/29.
+ */
+@Controller
+@RequestMapping("/admin/mcahine")
+public class AdminMachineController {
+
+    @Autowired
+    private MachineService machineService;
+    /**
+     * 查询机器列表
+     * @author LJK
+     * @date 2017年8月31日16:08:15
+     * @param pageSize
+     * @param pageNO
+     * @return
+     */
+    @RequiresPermissions("machine:select_all:machine")
+    @RequestMapping("/_machine_list")
+    public ModelAndView listOrder(
+            @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
+            @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
+            @RequestParam(value = "totalNum", defaultValue = "0",required=false) Integer totalNum,
+            PtsMachine ptsMachine){
+        ModelAndView mv = new ModelAndView("machine/machine_list");
+        PagedResult<PtsMachine> pagedResult = machineService.listMachine(pageNO, pageSize, ptsMachine, totalNum == 0);
+
+        if(totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+            pagedResult.setPages((int) Math.ceil((double)totalNum/pageSize));
+        }
+        StringBuilder sb = new StringBuilder("/admin/mcahine/_machine_list?pageSize=" + pageSize);
+
+        if (StringUtils.isNotEmpty(ptsMachine.getMachineBarcode())) {
+            sb.append("&machineBarcode=");
+            sb.append(ptsMachine.getMachineBarcode());
+            mv.addObject("machineBarcode",ptsMachine.getMachineBarcode());
+        }
+        if (ptsMachine.getMachineIsPrint() != null && ptsMachine.getMachineIsPrint() != -1) {
+            sb.append("&machineIsPrint=" );
+            sb.append(ptsMachine.getMachineIsPrint());
+            mv.addObject("machineIsPrint",ptsMachine.getMachineIsPrint());
+        }
+        if (ptsMachine.getMachineProcessState() != null && ptsMachine.getMachineProcessState() != -1) {
+            sb.append("&machineProcessState=" );
+            sb.append(ptsMachine.getMachineProcessState());
+            mv.addObject("machineProcessState",ptsMachine.getMachineProcessState());
+        }
+        sb.append("&totalNum=");
+        sb.append(totalNum == 0 ? pagedResult.getTotal() : totalNum);
+        sb.append("&pageNO=");
+
+        mv.addObject("page", pagedResult);
+        mv.addObject("url", sb.toString());
+        return mv;
+    }
+}

+ 129 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminProduceController.java

@@ -0,0 +1,129 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.ProcessNode;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
+import com.iamberry.rst.faces.pts.ProduceService;
+import com.iamberry.wechat.tools.ResponseJson;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 生产产品管理 controller
+ * wangxiaoming
+ */
+@Controller
+@RequestMapping("/admin/produce")
+public class AdminProduceController {
+
+    @Autowired
+    private ProduceService produceService;
+
+    /**
+     * 查询生产产品列表
+     *
+     * @param request
+     * @return
+     */
+    @RequiresPermissions("produce:list_produce:produce")
+    @RequestMapping("/_produce_list")
+    public ModelAndView selectOrderList(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("pts/produce/produce_list");
+        List<Produce> list = produceService.getProduceList();
+
+        //获取每个产品的所有工序
+        for (Produce produce : list){
+            ProduceProcess produceProcess = new ProduceProcess();
+            produceProcess.setProduceId(produce.getProduceId());
+            List<ProduceProcess> produceProcessesList = produceService.listProduceProcess(produceProcess);
+            produce.setProcess(produceProcessesList);
+        }
+        mv.addObject("resultList", list);
+        return mv;
+    }
+
+    /**
+     * 跳转到添加产品页面
+     *
+     * @return
+     */
+    @RequiresPermissions("produce:save_produce:produce")
+    @RequestMapping("/to_save_produce")
+    public ModelAndView goSaveProduce(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("pts/produce/save_produce");
+        return mv;
+    }
+
+    /**
+     * 添加产品
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("produce:save_produce:produce")
+    @RequestMapping(value="/save_produce")
+    public ResponseJson saveProduce( Produce produce,HttpServletRequest request) {
+
+        JSONArray jsonArray = JSONArray.fromObject(produce.getJson());
+        List<ProduceProcess>  process = (List) JSONArray.toCollection(jsonArray,ProduceProcess.class);
+        for(ProduceProcess produceProcess :process){
+            JSONArray nodesArray = JSONArray.fromObject(produceProcess.getJson());
+            List<ProcessNode>  processNode = (List) JSONArray.toCollection(nodesArray,ProcessNode.class);
+            produceProcess.setNodes(processNode);
+        }
+        produce.setProcess(process);
+
+        int falg = produceService.saveProduce(produce);
+
+        if (falg < 0 ){
+            return new ResponseJson(500, "ERROR", 500);
+        }else {
+            return new ResponseJson(200, "SUCCESS", 200);
+        }
+    }
+
+    /**
+     * 跳转到修改页面
+     *
+     * @return
+     */
+    @RequiresPermissions("produce:update_produce:produce")
+    @RequestMapping("/to_update_produce")
+    public ModelAndView toUpdateProduce(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("pts/produce/update_produce");
+
+        String produceId = request.getParameter("");
+        Produce produce = new Produce();
+        produce.setProduceId(Integer.valueOf(produceId));
+        produce = produceService.getProduce(produce);
+
+
+        mv.addObject("produce", produce);
+        return mv;
+    }
+
+    /**
+     * 修改产品
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("produce:update_produce:produce")
+    @RequestMapping("/update_produce")
+    public ResponseJson updateProduce(HttpServletRequest request,Produce produce) {
+        int flag = produceService.saveProduce(produce);
+        return new ResponseJson(200, "VALIDATION_ERROR", 500);
+    }
+
+}

+ 30 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsEmployeeController.java

@@ -0,0 +1,30 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.PtsEmployee;
+import com.iamberry.rst.faces.pts.PtsEmployeeService;
+import com.iamberry.wechat.tools.RespJsonBean;
+import com.iamberry.wechat.tools.ResponseJson;
+import com.iamberry.wechat.tools.payUtil.StringUtil;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * pts系统员工信息controller
+ * Created by wangxiaoming on 2017/8/29.
+ */
+@Controller
+@RequestMapping("/admin/staffmember")
+public class AdminPtsEmployeeController {
+
+    @Autowired
+    private PtsEmployeeService ptsEmployeeService;
+
+
+}

+ 50 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/EquipmentController.java

@@ -0,0 +1,50 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.faces.pts.ProduceService;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by Administrator on 2017/8/29.
+ */
+@Controller
+@RequestMapping("/admin/equipment")
+public class EquipmentController {
+
+    @Autowired
+    private ProduceService produceService;
+
+    @RequestMapping("/_add_equpment")
+    public ModelAndView addEqupmentUI(HttpServletRequest request) throws Exception {
+        ModelAndView mv = new ModelAndView("produce/addEqupment");
+        return mv;
+    }
+
+    @ResponseBody
+    @RequestMapping("/select_produce_list")
+    public ResponseJson selectProduceList(HttpServletRequest request) throws Exception {
+        ResponseJson msg = new ResponseJson();
+        //查询所有
+        List<Produce> produceList = produceService.listSelectProduct(new Produce());
+        Iterator<Produce> iter = produceList.iterator();
+        while(iter.hasNext()){
+            Produce produce = (Produce) iter.next();
+            if (produce.getProcess().size() <= 0) {
+                iter.remove();
+            }
+        }
+
+
+
+        return msg;
+    }
+}

+ 214 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -0,0 +1,214 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.*;
+import com.iamberry.rst.core.tools.QRCJson;
+import com.iamberry.rst.core.tools.WeixinUtil;
+import com.iamberry.rst.faces.pts.*;
+import com.iamberry.wechat.tools.NameUtils;
+import com.iamberry.wechat.tools.ResponseJson;
+import com.iamberry.wechat.tools.ResultInfo;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by LJK on 2017/8/29.
+ */
+@Controller
+@RequestMapping("/mcahine")
+public class MachineController {
+    @Autowired
+    private ProduceService produceService;
+
+    @Autowired
+    private MachineService machineService;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private PtsEmployeeService ptsEmployeeService;
+
+    @Autowired
+    private MachineLogsService machineLogsService;
+    @ResponseBody
+    @RequestMapping("/uploadProcessOptions")
+    public ResponseJson uploadProcessOptions(HttpServletRequest request){
+        ResponseJson rj = new ResponseJson();
+        String nodeList = request.getParameter("nodeList"); //获取员工id
+        if(nodeList == null || nodeList.equals("")){
+            rj.setResultMsg("200");
+            rj.setResultMsg("ERROR");
+            return rj;
+        }
+        JSONObject query = JSONObject.fromObject(nodeList);
+        Integer employeeId = query.getInt("employeeId");//员工id
+        String produceNo = query.getString("produceId");//产品编号
+        //生成条形码,二维码
+        String berQrcode = String.valueOf(employeeId+new Date().getTime());
+        String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix+berQrcode);
+        QRCJson qrc = WeixinUtil.createQrcode(json);
+        PtsMachine ptsMachine = new PtsMachine();
+        if (!(qrc == null || qrc.getUrl() == null || qrc.getUrl().isEmpty())) {
+            ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
+            ptsMachine.setMachineBarcode(berQrcode);//条形码
+            ptsMachine.setMachineStatus(1);//机器状态
+            ptsMachine.setMachineProducedTime(new Date());//生产时间
+            ptsMachine.setMachineIsPrint(1);//是否打印1:未打印2:已打印
+            ptsMachine.setMachineCompoundImg("合成的图片url");
+            ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
+            ptsMachine.setMachineCreateTime(new Date());//创建时间
+            machineService.addMachine(ptsMachine);
+        }
+        boolean isAbnormality = true;//状态是否异常
+        JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
+        PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
+        for(int i = 0;i< nodes.size();i++){
+            JSONObject jsonObject = nodes.getJSONObject(i);
+            String processNo = jsonObject.getString("processId"); //工序编号
+            String nodeNo = jsonObject.getString("nodeId"); //工序选项编号
+            String logsProcessTime = jsonObject.getString("logsProcessTime"); //工序执行时间 (时间戳)
+            Date logsProcessDate = timeConversions(logsProcessTime);
+            /*Date logsProcessDate = new Date(logsProcessTime);*/
+            Produce produce = produceService.getProduce(produceNo);//根据产品编号获取产品信息
+            ProduceProcess produceProcess = produceService.getProduceProcess(produce.getProduceId(),processNo);
+            ProcessNode processNode = produceService.getprocessNode(produceProcess.getProcessId(),nodeNo);
+            PtsDevice ptsDevice = deviceService.getDevice(produceProcess.getDriveId());
+            PtsEmployee ptsEmployee =ptsEmployeeService.getPtsEmployeeById(employeeId);
+            ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
+            ptsMachineLogs.setEmployeeId(employeeId);
+            ptsMachineLogs.setProduceId(produce.getProduceId());
+            ptsMachineLogs.setProcessId(produceProcess.getProcessId());
+            ptsMachineLogs.setMachineId(ptsMachine.getMachineId());
+            ptsMachineLogs.setEmployeeName(ptsEmployee.getEmployeeName());
+            ptsMachineLogs.setProduceName(produce.getProduceName());
+            ptsMachineLogs.setProcessName(produceProcess.getProcessName());
+            ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
+            if(i == 0){//如果当前循环的是第一条数据则排序必须是1,否则为异常
+                if(produceProcess.getProcessSort() == 1){
+                    if(processNode.getNodeStatus() == 0){//工序选项状态为异常则机器表状态也是异常
+                        isAbnormality = false;
+                    }
+                    ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
+                }else{
+                    ptsMachineLogs.setLogsProcessStatus(0);
+                    isAbnormality = false;
+                }
+            }else{//默认为正常
+                ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
+            }
+            ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"检查不通过": null);
+            ptsMachineLogs.setLogsProcessTime(logsProcessDate);
+            ptsMachineLogs.setLogsCreateTime(new Date());
+            //根据上一条工序选项信息判断当前工序是否正常,如果当前为修理工序则忽略,如果上一条为修理工序则查询上上一条
+            if(i > 0){
+                    int num = 0;
+                    ProduceProcess produceProcess2 = null;//当前工序的上一条非修理工序
+                    JSONObject jsonObject2;//上一级工序信息
+                    String processNo2 = null;//上一级工序编号
+                    //先判断当前的上一次是否是修理工序,如果不是则不用执行下面的循环,否则需要循环判断
+                    jsonObject2 = nodes.getJSONObject(i-1);
+                    if(jsonObject2 != null){
+                        processNo2 = jsonObject2.getString("processId");
+                        produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2);
+                        //判断当前工序是否是修理工序,如果是,则修改上一条为次品
+                        if(produceProcess.getProcessType() == 2){
+                            ptsMachineLogs.setLogsErrorType(2);//异常类型 1:流程异常 2:次品异常
+                            ptsMachineLogs.setLogsProcessPrompt("次品异常");
+                            machineLogsService.updateMachineLogs(ptsMachineLogs);
+                            isAbnormality = false;
+                            ptsMachineLogs.setLogsId(null);
+                            ptsMachineLogs.setLogsErrorType(null);
+                            ptsMachineLogs.setLogsProcessPrompt(null);
+                        }else{
+                            //判断是否是修理工序 1:生产工序 2:修理工序
+                            if(produceProcess2.getProcessType() == 1){
+                                if(produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1){
+                                    ptsMachineLogs.setLogsProcessStatus(0);
+                                    ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                    ptsMachineLogs.setLogsProcessPrompt("流程异常");
+                                    isAbnormality = false;
+                                }
+                            }else{
+                                for(int j = i-1;j<= i-1;j--){
+                                    if(num == i){
+                                        break;//只能循环 i 次,超出则跳出当前循环
+                                    }
+                                    jsonObject2 = nodes.getJSONObject(j);
+                                    if(jsonObject2 != null){
+                                        processNo2 = jsonObject2.getString("processId");
+                                        produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2);
+                                        if(produceProcess2.getProcessType() == 1){//判断是否是修理工序 1:生产工序 2:修理工序
+                                            if(produceProcess.getProcessSort() > produceProcess2.getProcessSort()){
+                                                ptsMachineLogs.setLogsProcessStatus(0);
+                                                ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                                ptsMachineLogs.setLogsProcessPrompt("流程异常");
+                                                isAbnormality = false;
+                                            }
+                                            break;
+                                        }
+                                    }
+                                    num++;
+                                }
+                            }
+                        }
+                    }
+            }
+            //执行添加日志操作
+            machineLogsService.addMachineLogs(ptsMachineLogs);
+            ptsMachineLogs.setLogsErrorType(null);//还原为默认值
+        }
+        //修改机器信息
+        if(!isAbnormality){
+            PtsMachine ptsMachine2 = new PtsMachine();
+            ptsMachine2.setMachineId(ptsMachine.getMachineId());
+            ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
+            ptsMachine2.setMachineUpdateTime(new Date());
+            machineService.updateMachine(ptsMachine2);
+        }
+        //截取条形码尾号(4位)
+        rj.addResponseKeyValue("barcodeTail",berQrcode.substring(berQrcode.length()-4, berQrcode.length()));
+        return rj;
+    }
+    private static Date timeConversions(String time){
+        if(time == null || time.equals("")){
+            return new Date();
+        }
+        //08311112
+        Calendar date = Calendar.getInstance();
+        String year = String.valueOf(date.get(Calendar.YEAR));//年
+        String months = null;//月
+        String sky = null;//天
+        String when = null;//时
+        String subdivision = null;//分
+        months = time.substring(0,2);
+        sky = time.substring(2,4);
+        when = time.substring(4,6);
+        subdivision = time.substring(6,8);
+        time = year + "-" + months + "-" + sky + " " + when + ":" + subdivision;
+        Date dates = new Date();
+        try
+        {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+            dates = sdf.parse(time);
+        }
+        catch (ParseException e)
+        {
+            System.out.println(e.getMessage());
+        }
+
+        return dates;
+    }
+}

+ 54 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/ProduceAppController.java

@@ -0,0 +1,54 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.order.Order;
+import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.faces.pts.ProduceService;
+import com.iamberry.wechat.tools.RespJsonBean;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 生产产品管理 controller
+ * wangxiaoming
+ */
+@Controller
+@RequestMapping("/produce")
+public class ProduceAppController {
+
+    @Autowired
+    private ProduceService produceService;
+
+    /**
+     * 获取生产产品、员工工作工序、工序操作选项  接口
+     *  @return:RespJsonBean  用于对接app的专用Bean
+     */
+    //@RequiresPermissions("produce:save_produce:produce")
+    @ResponseBody
+    @RequestMapping("/getProduce")
+    public RespJsonBean getProduce(HttpServletRequest request) {
+        RespJsonBean rsj = new RespJsonBean();
+        String employeeId = request.getParameter("employeeId"); //获取员工id
+
+        if (employeeId == null || "".equals(employeeId)) {
+            rsj.setResultCode(500);
+            rsj.setResultMsg("ERROR");
+            rsj.addResponseKeyValue("员工id为空");
+            return rsj;
+        }
+        //查询员工所做的产品,产品的工序,工序的节点操作
+        List<Produce> list = produceService.getAllProduceList(Integer.valueOf(employeeId));
+        rsj.setResultCode(200);
+        rsj.setResultMsg("SUCCESS");
+        rsj.setReturnMsg(list);
+        return rsj;
+    }
+}

+ 57 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/PtsEmployeeAppController.java

@@ -0,0 +1,57 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.core.pts.PtsEmployee;
+import com.iamberry.rst.faces.pts.PtsEmployeeService;
+import com.iamberry.wechat.tools.RespJsonBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * pts系统员工信息controller
+ * Created by wangxiaoming on 2017/8/29.
+ */
+@Controller
+@RequestMapping("/staffmember")
+public class PtsEmployeeAppController {
+
+    @Autowired
+    private PtsEmployeeService ptsEmployeeService;
+
+    /**
+     * 根据员工编号查询员工信息
+     *
+     * @param request
+     * @return:RespJsonBean  用于对接app的专用Bean
+     */
+    //@RequiresPermissions("produce:list_produce:produce")
+    @ResponseBody
+    @RequestMapping("/getStaffmemberByNumber")
+    public RespJsonBean getStaffmemberByNumber(HttpServletRequest request) {
+        RespJsonBean rsj = new RespJsonBean();
+        String employeeNo = request.getParameter("staffmemberNumber");  //获取员工编号
+        if (employeeNo == null || "".equals(employeeNo)) {
+            rsj.setResultCode(500);
+            rsj.setResultMsg("ERROR");
+            rsj.addResponseKeyValue("员工编号为空");
+            return rsj;
+        }
+        PtsEmployee ptsEmployee = new PtsEmployee();
+        ptsEmployee.setEmployeeNo(employeeNo);
+        ptsEmployee = ptsEmployeeService.getPtsEmployee(ptsEmployee); //查询员工信息
+        if (ptsEmployee == null) {
+            rsj.setResultCode(500);
+            rsj.setResultMsg("ERROR");
+            rsj.addResponseKeyValue("查询不到该员工");
+            return rsj;
+        }
+        rsj.setResultCode(200);
+        rsj.setResultMsg("SUCCESS");
+        rsj.setReturnMsg(ptsEmployee);
+        return rsj;
+    }
+
+}

+ 0 - 3
watero-rst-web/src/main/java/com/iamberry/rst/utils/ValidateUtil.java

@@ -10,9 +10,6 @@ public class ValidateUtil {
 
     /**
      * 6~16位字符,至少包含数字、大写字母、小写字母、符号中的两种
-     * http://www.docin.com/p-835484940.html
-     * @param value
-     * @return
      */
     public static boolean checkPwd(String value) {
         return value.matches("(?!^[0-9]+$)(?!^[A-Z]+$)(?!^[a-z]+$)(?!^[^A-z0-9]+$)^.{6,16}");

+ 0 - 30
watero-rst-web/src/main/java/com/iamberry/rst/utils/test.java

@@ -1,30 +0,0 @@
-package com.iamberry.rst.utils;
-
-import com.alibaba.fastjson.JSON;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by Administrator on 2017/6/20.
- */
-public class test {
-    public static void main(String[] args){
-        String data = "{\"dataId\":\"0005520031E364758439780F4F85E8FF\",\"devId\":\"002001015ccf7f944f3f\",\"dpa\":[{\"milk_box_state\":true,\"t\":1497535674017}],\"productKey\":\"4Ic6GgKI0vUG65Jd\"}";
-        JSONObject jasonObject = JSONObject.fromObject(data);
-        System.out.println(jasonObject.has("dps"));
-        if(jasonObject.has("dps")){
-            JSONArray dps = jasonObject.getJSONArray("dps");
-            Map maps = (Map) JSON.parse(dps.getJSONObject(0).toString());
-            Map mapTypes = JSON.parseObject(dps.getJSONObject(0).toString());
-            System.out.println(mapTypes);
-            for (Object obj : maps.keySet()){
-                System.out.println("key为:"+obj+"值为:"+maps.get(obj));
-            }
-            System.out.println(dps.getJSONObject(0));
-        }
-
-    }
-}

+ 21 - 6
watero-rst-web/src/main/resources/platform.properties

@@ -3,7 +3,7 @@ efast_base_url=http://121.199.165.244/efast_test/efast_api/webservice/web/index.
 app_nick=openapi
 app_key=8888
 app_secret=8888
-# sd_id ����id		test:001		watero:8
+# sd_id \uFFFD\uFFFD\uFFFD\uFFFDid		test:001		watero:8
 sd_id=001
 #---efast end---#
 #---SMS begin---#
@@ -22,12 +22,27 @@ cdnUrl=http://cms.iamberry.com/cdn
 base_url=http://app.iamberry.com/imberry
 INTER_SMS_URL=https://sms.yunpian.com/v2/sms/single_send.json
 INTER_SMS_KEY=2d3cc4afa42ec747b43a09ab89151133
-#确认短信
+#\u786E\u8BA4\u77ED\u4FE1
 CONFIRM_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u6761\u8BA2\u5355\u5F85\u5BA1\u6838\uFF0C\u8BF7\u5C3D\u5FEB\u524D\u5F80\u5904\u7406\uFF01
-#驳回短信
+#\u9A73\u56DE\u77ED\u4FE1
 REJECTED_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u6761\u8BA2\u5355\u88AB\u9A73\u56DE\uFF0C\u8BF7\u5C3D\u5FEB\u524D\u5F80\u5904\u7406\uFF01
-#通过短信
+#\u901A\u8FC7\u77ED\u4FE1
 THROUGH_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u6761\u8BA2\u5355\u5DF2\u5BA1\u6838\u901A\u8FC7\uFF01
-#通知发货短信
+#\u901A\u77E5\u53D1\u8D27\u77ED\u4FE1
 DELIVERY_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u67091\u4E2A\u5730\u63A8\u8BA2\u5355\u5F85\u53D1\u8D27\uFF0C\u8BF7\u53CA\u65F6\u5904\u7406\u3002
-#---SMS end---#
+#---SMS end---#
+#weixin
+# pubNo
+pubNo=gh_c73446c8ce91
+# appId-test
+appId=wxc71b789fad06a2d7
+# appId-watero
+#appId=wx27c9f825761a861b
+# token
+token=weixin
+# appSecret-test
+appSecret=8a90e3ab0e2db7772f5f64e7ed2f4b98
+# appSecret-watero
+#appSecret=97b2f2991e4ff0f2567fbc625f858377
+# partnerkey
+partnerkey=cdb9075e7ecad945ba788bc5aedM212B

+ 21 - 9
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -2,19 +2,19 @@
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
 	<!-- 设置  -->
-	<settings>  
-		<!--set lazy fetching-->  
-        <setting name="lazyLoadingEnabled" value="false" />  
+	<settings>
+		<!--set lazy fetching-->
+		<setting name="lazyLoadingEnabled" value="false" />
 		<!-- log4j -->
-        <setting name="logImpl" value="LOG4J"/>  
+		<setting name="logImpl" value="LOG4J"/>
 		<!-- 开启驼峰命名转换 map_entity to mapEntity -->
-		<setting name="mapUnderscoreToCamelCase" value="true" />  
+		<setting name="mapUnderscoreToCamelCase" value="true" />
 		<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键 -->
-		<setting name="useGeneratedKeys" value="true" />  
+		<setting name="useGeneratedKeys" value="true" />
 		<!-- 开启别列名转换 : select name as title form table -->
-		<setting name="useColumnLabel" value="true" />  
-    </settings>
-    <!-- 别名设置 -->
+		<setting name="useColumnLabel" value="true" />
+	</settings>
+	<!-- 别名设置 -->
 	<typeAliases>
 		<typeAlias type="com.iamberry.rst.core.sys.Admin" alias="Admin"/>
 		<typeAlias type="com.iamberry.rst.core.sys.AdminPocess" alias="AdminPocess"/>
@@ -38,6 +38,13 @@
 		<typeAlias type="com.iamberry.rst.core.faq.FAQDetails" alias="FAQDetails"/>
 		<typeAlias type="com.iamberry.rst.core.faq.FAQMenu" alias="FAQMenu"/>
 		<typeAlias type="com.iamberry.rst.core.faq.FAQSubMenu" alias="FAQSubMenu"/>
+		<typeAlias type="com.iamberry.rst.core.pts.ProcessNode" alias="ProcessNode"/>
+		<typeAlias type="com.iamberry.rst.core.pts.Produce" alias="Produce"/>
+		<typeAlias type="com.iamberry.rst.core.pts.ProduceProcess" alias="ProduceProcess"/>
+		<typeAlias type="com.iamberry.rst.core.pts.PtsDevice" alias="PtsDevice"/>
+		<typeAlias type="com.iamberry.rst.core.pts.PtsEmployee" alias="PtsEmployee"/>
+		<typeAlias type="com.iamberry.rst.core.pts.PtsMachine" alias="PtsMachine"/>
+		<typeAlias type="com.iamberry.rst.core.pts.PtsMachineLogs" alias="PtsMachineLogs"/>
 	</typeAliases>
 	<!-- PageHelper -->
 	<plugins>
@@ -53,5 +60,10 @@
 		<mapper resource="com/iamberry/rst/service/sms/mapper/messageMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/product/mapper/productMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/faq/mapper/faqMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/produceMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/ptsEmployeeMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/machineMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/deviceMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/machineLogsMapper.xml"/>
 	</mappers>
 </configuration>

+ 83 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl

@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<style>
+			*{padding: 0;margin: 0;}
+			.my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
+			.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}
+			.my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(images/select-1.png) right center no-repeat;background-size:auto 100%;}
+			.my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
+		</style>
+		<#include "/base/list_base.ftl">
+	</head>
+	<body>
+		<div>
+		<input class="my-input" type="text" placeholder="请输入机器编号"/>
+		<select class="my-select">
+			<option value ="未打印">未打印</option>
+		</select>
+		<select class="my-select">
+			<option value ="正常">正常</option>
+		</select>
+		<button type="submit" class="my-btn-search">搜索</button>
+		</div>
+		<div class="mt-20">
+			<table class="table table-border table-bordered table-bg table-hover table-sort">
+				<thead>
+				<tr class="text-c">
+					<th width="10">机器条码(点击打印)</th>
+					<th width="100">机器二维码(点击打印)</th>
+					<th width="100">打印状态</th>
+					<th width="100">销售状态</th>
+					<th width="100">销售日期</th>
+					<th width="100">生产流程状态</th>
+					<th width="50">生产时间</th>
+					<th width="150">操作</th>
+				</tr>
+				</thead>
+				<tbody id="listid">
+					<#list page.dataList as order>
+						<tr>
+							<td class="text-c" width="10">${list.machineBarcode }</td>
+							<td class="text-c" width="100"><div id="${100000 + st.index}"><img style="width: 50px;height: 50px;" src="${list.machineQrcode }"></td>
+                            <td class="text-c" width="100">
+							<#if list.machineIsPrint == 1>
+                                    未打印
+							</#if>
+							<#if list.machineIsPrint == 2>
+                                    已打印
+							</#if>
+                            </td>
+                            <td class="text-c" width="100">
+							<#if list.machineSalesState == 1>
+                                    已售出
+							</#if>
+							<#if list.machineSalesState == 2>
+                                    未售出
+							</#if>
+                            </td>
+							<td class="text-c" width="100"><fmt:formatDate value="${list.machineSalesDate }" pattern="yyyy-MM-dd HH:mm" /></td>
+                            <td class="text-c" width="100">
+							<#if list.machineProcessState == 1>
+                                    正常
+							</#if>
+							<#if list.machineProcessState == 2>
+                                    异常
+							</#if>
+                            </td>
+                            <td class="text-c" width="100"><fmt:formatDate value="${list.machineProducedTime }" pattern="yyyy-MM-dd HH:mm" /></td>
+							<!-- 遍历操作 -->
+							<td class="td-manage text-c">
+								<#--<a onclick="print(${100000 + st.index},${list.numberId},${list.numberIsPrint})" title="打印" href="javascript:;"  class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe652;</i></a>
+								<a onclick="downLoad();" title="下载" href="javascript:;"  class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe640;</i></a>-->
+							</td>
+						</tr>
+					</#list>
+				</tbody>
+			</table>
+		</div>
+		<#include "/base/page_util.ftl">
+	</body>
+</html>

+ 86 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/produce_list.ftl

@@ -0,0 +1,86 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <link rel="Bookmark" href="/favicon.ico" >
+    <link rel="Shortcut Icon" href="/favicon.ico" />
+    <#include "/base/list_base.ftl">
+    <title>生产产品列表</title>
+    <style>
+        .chanpin-list{margin: 0;padding: 10px;list-style-type: none;}
+        .chanpin-list>li{float: left;width: 230px;border: 1px solid rgba(0,0,0,.1);background-color: #fff;margin-right: 30px;}
+        .chanpin-list>li .title{background-color: #32a3d8;text-align: center;color: #fff;padding: 12px 0;}
+        .chanpin-list>li .title>span{padding:3px 3px 3px 28px;background: url(${path}/common/images/jiqi-1.png) left center no-repeat;background-size:auto 80%;}
+        .items-list{margin: 0;padding: 20px 25px;list-style: none;}
+        .items-list>li{margin: 12px 0;font-size: 13px;position: relative;padding-left: 13px;color: #666;}
+        .items-list>li:after{content: '';position: absolute;left: 0;top: 5px;width: 5px;height: 5px;border-radius: 50%;border: 1px solid #32a3d8;}
+        .items-list>li:last-child{text-align: center;margin-top: 50px;padding-left: 0;}
+        .items-list>li:last-child:after{display: none;}
+        .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;}
+        .chanpin-list>.li-add{width: 230px;height: 280px;text-align: center;display: table;padding-top: 55px;position: relative;cursor:pointer;}
+        .chanpin-list>.li-add:before{content: '';width: 5px;height: 80px; position: absolute;left: 50%;top: 90px;background-color: #32a3d8;border-radius: 50px;}
+        .chanpin-list>.li-add:after{content: '';height: 5px;width: 80px;position: absolute;left: 75px;top: 128px;background-color: #32a3d8;border-radius: 50px;}
+        .chanpin-list>.li-add>div{display: table-cell;vertical-align: middle;height: 100%;width: 100%;text-align: center;color: #32a3d8;}
+    </style>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">&gt;</span> 生产产品管理
+    <span class="c-gray en">&gt;</span> 生产产品列表
+    <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="page-container">
+
+        <ul class="chanpin-list">
+
+        <#list resultList as produce>
+            <li>
+                <div class="title">
+                    <span>${produce.produceName!}</span>
+                </div>
+                <ul class="items-list">
+                    <#list produce.process as process>
+                        <li>${process.processName!}</li>
+                    </#list>
+                    <li>
+                        <button type="button" onclick="updateProduce(1)" class="my-btn-edit">编辑流程</button>
+                    </li>
+                </ul>
+            </li>
+        </#list>
+            <li class="li-add">
+                <div>添加产品</div>
+            </li>
+        </ul>
+    <div>
+
+    </div>
+
+</div>
+<#--<#include "/base/page_util.ftl">-->
+<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
+<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.min.js"> </script>
+<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
+<script type="text/javascript">
+    $(function(){
+       $(".li-add").click(function () {
+           window.location.href= "${path}/admin/produce/to_save_produce";
+       })
+    })
+
+    /**
+     * 跳转到修改页面
+     * @param produceId
+     */
+    function updateProduce(produceId){
+        window.location.href= "${path}/admin/produce/to_update_produce?produceId="+ produceId;
+    }
+
+</script>
+
+</body>
+</html>

+ 208 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl

@@ -0,0 +1,208 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <#include "/base/add_base.ftl">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css" />
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 5px 10px;width: 60%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .add-list>li{margin: 10px 0;}
+        .cp-list{list-style-type: none;margin: 0;padding: 0;}
+        .cp-list>li{position: relative;    cursor: pointer;clear: both;padding: 15px 0;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(images/select-1.png) right center no-repeat;background-size:auto 100%;}
+    </style>
+    <title>添加生产产品- 生产产品管理 - RST</title>
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-addProduce">
+        <div style="padding: 10px;">
+            <div class="my-title">产品信息</div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="" placeholder="请输入产品名称"/> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="" placeholder="请输入产品描述"/> </div>
+            <div style="background-color:rgba(0,0,0,.1);height: 1px;margin: 15px 0;"></div>
+            <div class="my-title">节点信息</div>
+
+            <ul class="cp-list onrTheProcess" id="sortable">
+                <li id="1" class="processList">
+                    <input type="hidden" class="processNumber" value="1">
+                    <div class="input-box"><span class="input-dic">节点类型</span>
+                        <label><input type="radio" name="processType_p1" value="1">生产工序</label>
+                        <label><input type="radio" name="processType_p1" value="2">修理工序</label>
+                    </div>
+                    <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入产品名称"/> </div>
+                    <div class="input-box"><span class="input-dic">节点操作</span>
+                        <ul class="add-list oneTheNode" >
+                            <li class="nodeList">
+                                <select class="my-select"><option>1</option></select>
+                                <label><input type="radio" name="nodeStatus_p1_n1" value="1">正常</label>
+                                <label><input type="radio" name="nodeStatus_p1_n1" value="0">异常</label>
+                                <input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>
+                            </li>
+                            <li>
+                                <button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button>
+                            </li>
+                        </ul>
+                    </div>
+                </li>
+            </ul>
+
+            <div style="clear: both;"></div>
+            <div><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
+            <div>
+                <button type="reset" class="my-btn-reset" >重置</button><button type="submit" class="my-btn-submit">确认提交</button>
+            </div>
+        </div>
+
+    </form>
+</article>
+<#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>-->
+<#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>-->
+<script type="text/javascript" src="${path}/common/lib/jquery.ui/jquery-ui.js"></script>
+<script type="text/javascript">
+
+    //动态显示隐藏所属菜单
+    $(document).on('click', '.menuSubid input[type=radio]', function() {
+        isSelectShow($(this).val())
+    })
+
+    $(function(){
+        $("#form-admin-addProduce").validate({
+            rules:{
+                subName:{
+                    required:true,
+                    minlength:4,
+                    maxlength:30
+                }
+            },
+            onkeyup:false,
+            focusCleanup:true,
+            success:"valid",
+            submitHandler:function(form){
+                debugger;
+                $.post(root_path + "/admin/produce/save_produce", formatJSON(),function(result){
+                    if (result.returnCode != 200 || result.returnCode != 200) {
+                        layer.msg('录入失败,请重试!',{icon: 5,time:3000});
+                    } else {
+                        layer.msg('录入成功!!',{icon: 1,time:2000}, function () {
+                            // 关闭当前页面,并刷新父级页面
+                            window.location.href= '${path}/admin/produce/list_produce?detaId='+result.resultMsg;
+                        });
+                    }
+                });
+            }
+        });
+    });
+
+    /*将表单format为JSON*/
+    function formatJSON() {
+        debugger;
+        var produce = {};
+
+        var oneTheProcess = $(".onrTheProcess").find(".processList");
+        var proessList = new Array();
+        var i=1;
+        oneTheProcess.each(function(){
+            var produceProcess = {};
+            produceProcess.processName =  $(this).find("[name='processName']").val();   //获取工序名称
+            var processTypeName = "processType_p"+i;         //获取工序类型名称
+            produceProcess.processType =  $("input[name="+ processTypeName +"]:checked").val();   //获取工序类型
+
+            var nodeList =  new Array();
+            var j=1;
+            $(this).find(".oneTheNode").find(".nodeList").each(function(){
+                var processNode = {};
+                processNode.nodeDes = $(this).find("[name='nodeDes']").val();   //获取节点描述
+                var nodeStatusName = "nodeStatus_p"+i+"_n" +j;
+                processNode.nodeStatus = $("input[name="+ nodeStatusName +"]:checked").val();     //获取节点状态
+                nodeList.push(processNode);
+                j++;
+            })
+            produceProcess.json = JSON.stringify(nodeList);     //将node变成json存入到工序对象中
+            //produceProcess.nodes = nodeList;
+            proessList.push(produceProcess);
+            i++;
+        })
+        produce.json = JSON.stringify(proessList);      //将工序变成json存入到产品对象中
+        produce.produceName = $("[name='produceName']").val();//获取产品名称
+        produce.produceRemake = $("[name='produceRemake']").val();//获取产品描述
+//        var s  = JSON.stringify(produce);
+//        alert(s)
+        return produce;
+    }
+
+    /**
+     * 增加节点操作方法
+     */
+    function addProNode(node){
+        var processNumber = $(node).parents(".processList").find(".processNumber").val();    //获取当前的节点标识
+        var nodeNumber = $(node).parents(".oneTheNode").find(".nodeList").length + 1;       //因为是新加的节点操作所以 +1
+        var nodeHtml = '<li class="nodeList">'
+                +'<select class="my-select"><option>1</option></select>&nbsp;'
+                +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="1">正常</label>&nbsp;'
+                +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="0">异常</label>&nbsp;'
+                +'<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>'
+                +'</li>';
+        $(node).parent().before(nodeHtml);
+    }
+
+    /**
+     * 增加工序节点
+     * @param node
+     */
+    function addProcess(node) {
+        var processNumber = $(node).parents(".onrTheProcess").find("processList").length + 1;  //因为是新加的工序节点所以 +1
+        var processHtml = '<li id="'+ processNumber +'"  class="processList"><input type="hidden" class="processNumber" value="'+ processNumber +'">'
+                + '<div class="input-box"><span class="input-dic">节点类型</span>'
+                + '<label><input type="radio" name="processType_p2" value="1">生产工序</label>'
+                + '<label><input type="radio" name="processType_p2" value="2">修理工序</label>'
+                + '</div>'
+                + '<div class="input-box"><span class="input-dic">第二节点</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入产品名称"/> </div>'
+                + '<div class="input-box"><span class="input-dic">节点操作</span>'
+                + '<ul class="add-list oneTheNode">'
+                + '<li class="nodeList">'
+                + '<select class="my-select"><option>1</option></select>&nbsp;'
+                + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="1">正常</label>&nbsp;'
+                + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="0">异常</label>&nbsp;'
+                + '<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>'
+                + '</li>'
+                + '<li><button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button></li>'
+                + '</ul>'
+                + '</div>'
+                + '</li>';
+        $(".onrTheProcess").append(processHtml);
+    }
+</script>
+
+<script>
+    $(function() {
+        //在ajax拉取数据append()之后再初始化拖拽排序
+        $( "#sortable" ).sortable({
+            revert: true,
+            containment: "parent"
+        });
+        $( "ul, li" ).disableSelection();
+
+    });
+
+    //确认提交事件,获取每个li的id
+    $(document).on('click', '.my-btn-submit', function() {
+        $("#sortable>li").each(function(){
+            console.log($(this).attr("id"));
+        });
+    });
+</script>
+</body>
+</html>

+ 208 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl

@@ -0,0 +1,208 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <#include "/base/add_base.ftl">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css" />
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 5px 10px;width: 60%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .add-list>li{margin: 10px 0;}
+        .cp-list{list-style-type: none;margin: 0;padding: 0;}
+        .cp-list>li{position: relative;    cursor: pointer;clear: both;padding: 15px 0;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(images/select-1.png) right center no-repeat;background-size:auto 100%;}
+    </style>
+    <title>修改生产产品- 生产产品管理 - RST</title>
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-addProduce">
+        <div style="padding: 10px;">
+            <div class="my-title">产品信息</div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="" placeholder="请输入产品名称"/> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="" placeholder="请输入产品描述"/> </div>
+            <div style="background-color:rgba(0,0,0,.1);height: 1px;margin: 15px 0;"></div>
+            <div class="my-title">节点信息</div>
+
+            <ul class="cp-list onrTheProcess" id="sortable">
+                <li id="1" class="processList">
+                    <input type="hidden" class="processNumber" value="1">
+                    <div class="input-box"><span class="input-dic">节点类型</span>
+                        <label><input type="radio" name="processType_p1" value="1">生产工序</label>
+                        <label><input type="radio" name="processType_p1" value="2">修理工序</label>
+                    </div>
+                    <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入产品名称"/> </div>
+                    <div class="input-box"><span class="input-dic">节点操作</span>
+                        <ul class="add-list oneTheNode" >
+                            <li class="nodeList">
+                                <select class="my-select"><option>1</option></select>
+                                <label><input type="radio" name="nodeStatus_p1_n1" value="1">正常</label>
+                                <label><input type="radio" name="nodeStatus_p1_n1" value="0">异常</label>
+                                <input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>
+                            </li>
+                            <li>
+                                <button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button>
+                            </li>
+                        </ul>
+                    </div>
+                </li>
+            </ul>
+
+            <div style="clear: both;"></div>
+            <div><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
+            <div>
+                <button type="reset" class="my-btn-reset">重置</button><button type="submit" class="my-btn-submit">确认提交</button>
+            </div>
+        </div>
+
+    </form>
+</article>
+<#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>-->
+<#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>-->
+<script type="text/javascript" src="${path}/common/lib/jquery.ui/jquery-ui.js"></script>
+<script type="text/javascript">
+
+    //动态显示隐藏所属菜单
+    $(document).on('click', '.menuSubid input[type=radio]', function() {
+        isSelectShow($(this).val())
+    })
+
+    $(function(){
+        $("#form-admin-addProduce").validate({
+            rules:{
+                subName:{
+                    required:true,
+                    minlength:4,
+                    maxlength:30
+                }
+            },
+            onkeyup:false,
+            focusCleanup:true,
+            success:"valid",
+            submitHandler:function(form){
+                debugger;
+                $.post(root_path + "/admin/produce/save_produce", formatJSON(),function(result){
+                    if (result.returnCode != 200 || result.returnCode != 200) {
+                        layer.msg('录入失败,请重试!',{icon: 5,time:3000});
+                    } else {
+                        layer.msg('录入成功!!',{icon: 1,time:2000}, function () {
+                            // 关闭当前页面,并刷新父级页面
+                            window.location.href= '${path}/admin/produce/list_produce?detaId='+result.resultMsg;
+                        });
+                    }
+                });
+            }
+        });
+    });
+
+    /*将表单format为JSON*/
+    function formatJSON() {
+        debugger;
+        var produce = {};
+
+        var oneTheProcess = $(".onrTheProcess").find(".processList");
+        var proessList = new Array();
+        var i=1;
+        oneTheProcess.each(function(){
+            var produceProcess = {};
+            produceProcess.processName =  $(this).find("[name='processName']").val();   //获取工序名称
+            var processTypeName = "processType_p"+i;         //获取工序类型名称
+            produceProcess.processType =  $("input[name="+ processTypeName +"]:checked").val();   //获取工序类型
+
+            var nodeList =  new Array();
+            var j=1;
+            $(this).find(".oneTheNode").find(".nodeList").each(function(){
+                var processNode = {};
+                processNode.nodeDes = $(this).find("[name='nodeDes']").val();   //获取节点描述
+                var nodeStatusName = "nodeStatus_p"+i+"_n" +j;
+                processNode.nodeStatus = $("input[name="+ nodeStatusName +"]:checked").val();     //获取节点状态
+                nodeList.push(processNode);
+                j++;
+            })
+            produceProcess.json = JSON.stringify(nodeList);     //将node变成json存入到工序对象中
+            //produceProcess.nodes = nodeList;
+            proessList.push(produceProcess);
+            i++;
+        })
+        produce.json = JSON.stringify(proessList);      //将工序变成json存入到产品对象中
+        produce.produceName = $("[name='produceName']").val();//获取产品名称
+        produce.produceRemake = $("[name='produceRemake']").val();//获取产品描述
+//        var s  = JSON.stringify(produce);
+//        alert(s)
+        return produce;
+    }
+
+    /**
+     * 增加节点操作方法
+     */
+    function addProNode(node){
+        var processNumber = $(node).parents(".processList").find(".processNumber").val();    //获取当前的节点标识
+        var nodeNumber = $(node).parents(".oneTheNode").find(".nodeList").length + 1;       //因为是新加的节点操作所以 +1
+        var nodeHtml = '<li class="nodeList">'
+                +'<select class="my-select"><option>1</option></select>&nbsp;'
+                +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="1">正常</label>&nbsp;'
+                +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="0">异常</label>&nbsp;'
+                +'<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>'
+                +'</li>';
+        $(node).parent().before(nodeHtml);
+    }
+
+    /**
+     * 增加工序节点
+     * @param node
+     */
+    function addProcess(node) {
+        var processNumber = $(node).parents(".onrTheProcess").find("processList").length + 1;  //因为是新加的工序节点所以 +1
+        var processHtml = '<li id="'+ processNumber +'"  class="processList"><input type="hidden" class="processNumber" value="'+ processNumber +'">'
+                + '<div class="input-box"><span class="input-dic">节点类型</span>'
+                + '<label><input type="radio" name="processType_p2" value="1">生产工序</label>'
+                + '<label><input type="radio" name="processType_p2" value="2">修理工序</label>'
+                + '</div>'
+                + '<div class="input-box"><span class="input-dic">第二节点</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入产品名称"/> </div>'
+                + '<div class="input-box"><span class="input-dic">节点操作</span>'
+                + '<ul class="add-list oneTheNode">'
+                + '<li class="nodeList">'
+                + '<select class="my-select"><option>1</option></select>&nbsp;'
+                + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="1">正常</label>&nbsp;'
+                + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="0">异常</label>&nbsp;'
+                + '<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点描述,2-10位中文" maxlength="10"/>'
+                + '</li>'
+                + '<li><button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button></li>'
+                + '</ul>'
+                + '</div>'
+                + '</li>';
+        $(".onrTheProcess").append(processHtml);
+    }
+</script>
+
+<script>
+    $(function() {
+        //在ajax拉取数据append()之后再初始化拖拽排序
+        $( "#sortable" ).sortable({
+            revert: true,
+            containment: "parent"
+        });
+        $( "ul, li" ).disableSelection();
+
+    });
+
+    //确认提交事件,获取每个li的id
+    $(document).on('click', '.my-btn-submit', function() {
+        $("#sortable>li").each(function(){
+            console.log($(this).attr("id"));
+        });
+    });
+</script>
+</body>
+</html>

二進制
watero-rst-web/src/main/webapp/common/images/jiqi-1.png


+ 2 - 2
watero-rst-web/src/test/java/junit/com/iamberry/rst/Test.java

@@ -21,8 +21,8 @@ public class Test {
 
 
     public static void main(String[] args) throws IOException {
-        init();
-        splitWord();
+//        init();
+//        splitWord();
     }
 
     private static void test1(int a){

+ 12 - 12
wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/product/QrcodeGift.java

@@ -11,29 +11,29 @@ public class QrcodeGift implements java.io.Serializable {
 
     private static final long serialVersionUID = -4719516119557478524L;
 
-    private Integer qrcodeId;
+    private Integer qrcodeId;           //id
 
-    private Integer qrcodeColorId;
+    private Integer qrcodeColorId;      //商品颜色id
 
-    private String qrcodeName;
+    private String qrcodeName;          //商品名称
 
-    private String qrcodeColorName;
+    private String qrcodeColorName;     //商品颜色名称
 
-    private String qrcodePreGiftColor;
+    private String qrcodePreGiftColor;  //优惠二维码礼品颜色id
 
-    private String qrcodeSalesGiftColor;
+    private String qrcodeSalesGiftColor;//购买二维码礼品颜色id
 
-    private Integer qrcodePreDiscount;
+    private Integer qrcodePreDiscount;  //优惠二维码优惠价
 
-    private Integer qrcodeSalesDiscount;
+    private Integer qrcodeSalesDiscount;//购买二维码优惠价
 
-    private Integer qrcodeStatus;
+    private Integer qrcodeStatus;       //状态
 
-    private String qrcodeDesc;
+    private String qrcodeDesc;          //描述
 
-    private Date qrcodeCreateTime;
+    private Date qrcodeCreateTime;      //创建时间
 
-    private PageBean page;
+    private PageBean page;              //分页
 
     public PageBean getPage() {
         return page;

+ 0 - 126
wateroPF-common-core/wateroPF-common-core.iml

@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="wateroPF-common-tool" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:0.9.5" level="project" />
-  </component>
-</module>

+ 0 - 125
wateroPF-common-tool/wateroPF-common-tool.iml

@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.3" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-  </component>
-</module>

+ 14 - 0
wateroPF-common-web/pom.xml

@@ -28,4 +28,18 @@
 			</properties>
 		</profile>
 	</profiles>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.3</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>

+ 0 - 124
wateroPF-common-web/wateroPF-common-web.iml

@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:0.9.5" level="project" />
-  </component>
-</module>

+ 0 - 126
wateroPF-wechat-interface/wateroPF-wechat-interface.iml

@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="wateroPF-common-core" />
-    <orderEntry type="module" module-name="wateroPF-common-tool" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:0.9.5" level="project" />
-  </component>
-</module>

+ 3 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/ImberryConfig.java

@@ -37,6 +37,8 @@ public class ImberryConfig {
 
 	/**手动推送发货信息**/
 	public static String INFORM_SHIPPING = "";
+
+	public static String ORDER_UPDATE_STATUS_TEXT = "";
 	
 	static {
 		Properties pro = new Properties();
@@ -63,6 +65,7 @@ public class ImberryConfig {
 			PROBATION_SUCCESS_THIRD_TEXT = pro.getProperty("PROBATION_SUCCESS_THIRD_TEXT");
 			LEASE_ORDER_SUCCESS_TEXT = pro.getProperty("LEASE_ORDER_SUCCESS_TEXT");
 			INFORM_SHIPPING = pro.getProperty("INFORM_SHIPPING");
+			ORDER_UPDATE_STATUS_TEXT = pro.getProperty("ORDER_UPDATE_STATUS_TEXT");
 			
 		} catch (Exception e) {
 			e.printStackTrace();

+ 1 - 1
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml

@@ -189,7 +189,7 @@ PUBLIC
 	<select id="getShopOrderItemByOrderId" parameterType="String" resultType="OrderItem">
 		SELECT I.ITEM_PRODUCT_NAME itemProductName, I.ITEM_PRODUCT_PIC itemProductPic, I.ITEM_PRODUCT_PRICE itemProductPrice, 
 			I.ITEM_PRODUCT_DISCOUNT itemProductDiscount, I.ITEM_NUM itemNum, I.ITEM_TOTAL itemTotal, C.COLOR_NAME productColor,
-			C.COLOR_69CODE produectRemark 
+			C.COLOR_69CODE produectRemark, I.ITEM_PRODUCT_TYPE itemProductType
 		FROM 
 			TB_IAMBERRY_SHOP_ORDER_ITEM I LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P 
 			ON I.ITEM_PRODUCT_ID = P.PRODUCT_ID 

+ 180 - 180
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productInfoMapper.xml

@@ -9,7 +9,7 @@
 		PRODUCT_SORT_NUM productSortNum, PRODUCT_COLOR_DES productColorDes, PRODUCT_REMARK productRemark,
 		PRODUCT_TYPE "productType.typeId", PRODUCT_RENT_TYPE productRentType 
 	</sql>
-	
+
 	<sql id="userGift">
 		USER_ID userId,
 		USER_PRODUCT_ID userProductId,
@@ -22,7 +22,7 @@
 		USER_STATUS userStatus,
 		USER_CREATE_TIME userCreateTime 
 	</sql>
-	
+
 	<sql id="color">
 		COLOR_ID colorId,
 		COLOR_PRODUCT_ID colorProductId,
@@ -31,90 +31,90 @@
 		COLOR_PRICE colorPrice,
 		COLOR_69CODE color69Code 
 	</sql>
-	
+
 	<!-- 分页查询商品信息 -->
 	<select id="selectPageProduct" parameterType="Product" resultType="Product">
-		SELECT 
-			<include refid="product" />,
-			COLOR_DISCOUNT productDiscount,
-			COLOR_PRICE productPrice, 
-			COLOR_NAME productColor, 
-			COLOR_ID colorId  
-		FROM 
-			TB_IAMBERRY_PRODUCT_INFO 
-		LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR ON PRODUCT_ID = COLOR_PRODUCT_ID 
-		WHERE 
-			PRODUCT_STATUS = 1 
-			<if test="productName != null and productName != ''">
-				AND PRODUCT_NAME like CONCAT('%',#{productName},'%') 
-			</if>
-			<if test="productType.typeId != null and productType.typeId != 2">
-				AND PRODUCT_TYPE = #{productType.typeId} 
-			</if>
-			<if test="productType.typeId != null and productType.typeId == 2">
-				AND PRODUCT_TYPE in (2,6,7,8,9,10) 
-			</if>
-			<if test="productRentType != null and productRentType != ''">
-				AND PRODUCT_RENT_TYPE = #{productRentType} 
-			</if>
-			ORDER BY PRODUCT_CREATE_DATE DESC 
-			<if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
-		     	LIMIT ${page.recordBegin},${page.pageSize}
-		    </if>
+		SELECT
+		<include refid="product" />,
+		COLOR_DISCOUNT productDiscount,
+		COLOR_PRICE productPrice,
+		COLOR_NAME productColor,
+		COLOR_ID colorId
+		FROM
+		TB_IAMBERRY_PRODUCT_INFO
+		LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR ON PRODUCT_ID = COLOR_PRODUCT_ID
+		WHERE
+		PRODUCT_STATUS = 1
+		<if test="productName != null and productName != ''">
+			AND PRODUCT_NAME like CONCAT('%',#{productName},'%')
+		</if>
+		<if test="productType.typeId != null and productType.typeId != 2">
+			AND PRODUCT_TYPE = #{productType.typeId}
+		</if>
+		<if test="productType.typeId != null and productType.typeId == 2">
+			AND PRODUCT_TYPE in (2,6,7,8,9,10)
+		</if>
+		<if test="productRentType != null and productRentType != ''">
+			AND PRODUCT_RENT_TYPE = #{productRentType}
+		</if>
+		ORDER BY PRODUCT_CREATE_DATE DESC
+		<if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
+			LIMIT ${page.recordBegin},${page.pageSize}
+		</if>
 	</select>
-	
+
 	<!-- 根据条件查询产品集合 -->
 	<select id="listSelectProduct" parameterType="Product" resultType="Product">
-		SELECT 
-			<include refid="product" />,
-			COLOR_DISCOUNT productDiscount,
-			COLOR_PRICE productPrice, 
-			COLOR_NAME productColor, 
-			COLOR_ID colorId  
-		FROM 
-			TB_IAMBERRY_PRODUCT_INFO 
-		LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR ON PRODUCT_ID = COLOR_PRODUCT_ID 
+		SELECT
+		<include refid="product" />,
+		COLOR_DISCOUNT productDiscount,
+		COLOR_PRICE productPrice,
+		COLOR_NAME productColor,
+		COLOR_ID colorId
+		FROM
+		TB_IAMBERRY_PRODUCT_INFO
+		LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR ON PRODUCT_ID = COLOR_PRODUCT_ID
 		<where>
 			<if test="productStatus != null and productStatus != ''">
-				PRODUCT_STATUS = #{productStatus} 
+				PRODUCT_STATUS = #{productStatus}
 			</if>
 			<if test="productRentType != null and productRentType != ''">
-				AND PRODUCT_RENT_TYPE = #{productRentType} 
+				AND PRODUCT_RENT_TYPE = #{productRentType}
 			</if>
 		</where>
 	</select>
-	
+
 	<select id="selectColorList" parameterType="Integer" resultType="ProductColor">
-		SELECT 
-			<include refid="color" />
-		FROM 
-			TB_IAMBERRY_PRODUCT_COLOR 
-		WHERE 
-			COLOR_PRODUCT_ID = #{colorProductId} 
+		SELECT
+		<include refid="color" />
+		FROM
+		TB_IAMBERRY_PRODUCT_COLOR
+		WHERE
+		COLOR_PRODUCT_ID = #{colorProductId}
 		ORDER BY COLOR_DISCOUNT ASC
 	</select>
-	
+
 	<select id="selectProductCount" resultType="Integer" parameterType="Product">
-		SELECT 
-			COUNT(PRODUCT_ID) 
-		FROM 
-			TB_IAMBERRY_PRODUCT_INFO 
-		WHERE 
-			PRODUCT_STATUS = 1 
-			<if test="productName != null and productName != ''">
-				AND PRODUCT_NAME LIKE CONCAT('%',#{productName},'%') 
-			</if>
-			<if test="productType.typeId != null and productType.typeId != 2">
-				AND PRODUCT_TYPE = #{productType.typeId} 
-			</if>
-			<if test="productType.typeId != null and productType.typeId == 2">
-				AND PRODUCT_TYPE in (2,6,7,8,9,10) 
-			</if>
-			<if test="productRentType != null and productRentType != ''">
-				AND PRODUCT_RENT_TYPE = #{productRentType} 
-			</if>
+		SELECT
+		COUNT(PRODUCT_ID)
+		FROM
+		TB_IAMBERRY_PRODUCT_INFO
+		WHERE
+		PRODUCT_STATUS = 1
+		<if test="productName != null and productName != ''">
+			AND PRODUCT_NAME LIKE CONCAT('%',#{productName},'%')
+		</if>
+		<if test="productType.typeId != null and productType.typeId != 2">
+			AND PRODUCT_TYPE = #{productType.typeId}
+		</if>
+		<if test="productType.typeId != null and productType.typeId == 2">
+			AND PRODUCT_TYPE in (2,6,7,8,9,10)
+		</if>
+		<if test="productRentType != null and productRentType != ''">
+			AND PRODUCT_RENT_TYPE = #{productRentType}
+		</if>
 	</select>
-	
+
 	<!-- 查询首页产品 -->
 	<select id="selectIndexPageProduct" resultType="Product">
 		SELECT 
@@ -137,7 +137,7 @@
 		LIMIT 
 			0,10
 	</select>
-	
+
 	<!-- 根据productId查询商品信息 -->
 	<select id="getProductByProductId" parameterType="java.lang.Integer" resultType="Product">
 		SELECT 
@@ -162,108 +162,108 @@
 		AND 
 			COLOR_ID = #{1} 
 	</select>
-	
+
 	<!-- 根据商品名称查询商品信息 -->
 	<select id="getProductByProductName" parameterType="java.lang.String" resultType="Product">
-		SELECT 
-			<include refid="product"/>
-		FROM 
-			TB_IAMBERRY_PRODUCT_INFO 
+		SELECT
+		<include refid="product"/>
+		FROM
+		TB_IAMBERRY_PRODUCT_INFO
 		<where>
 			<if test="_parameter != null">
-				PRODUCT_NAME like #{productName} 
+				PRODUCT_NAME like #{productName}
 			</if>
 		</where>
 		ORDER BY PRODUCT_ID DESC
 	</select>
-	
+
 	<update id="updateProductNumList" parameterType="java.util.List">
 		<foreach collection="list" item="item" index="index" separator=";" open="" close="">
-		UPDATE 
-			TB_IAMBERRY_PRODUCT_INFO 
-		SET 
-			PRODUCT_SALESNUM = (PRODUCT_SALESNUM + #{item.itemNum,jdbcType=INTEGER}) 
-		WHERE 
+			UPDATE
+			TB_IAMBERRY_PRODUCT_INFO
+			SET
+			PRODUCT_SALESNUM = (PRODUCT_SALESNUM + #{item.itemNum,jdbcType=INTEGER})
+			WHERE
 			PRODUCT_ID = #{item.itemProductId,jdbcType=INTEGER}
-			</foreach>
+		</foreach>
 	</update>
-	
+
 	<!-- 根据商品id查询礼品信息 -->
 	<select id="selectUserGift" parameterType="UserGiftDto" resultType="UserGiftDto">
-		SELECT 
-			<include refid="userGift"/> 
-		FROM 
-			TB_IAMBERRY_SALES_USER_GIFT
-		WHERE 
-			USER_STATUS = 1 
+		SELECT
+		<include refid="userGift"/>
+		FROM
+		TB_IAMBERRY_SALES_USER_GIFT
+		WHERE
+		USER_STATUS = 1
 		<if test="userProductId != null and userProductId != ''">
-			AND USER_PRODUCT_ID = #{userProductId} 
+			AND USER_PRODUCT_ID = #{userProductId}
 		</if>
 		<if test="userColorId != null and userColorId != ''">
-			AND USER_COLOR_ID = #{userColorId} 
+			AND USER_COLOR_ID = #{userColorId}
 		</if>
 		<if test="userLevel != null and userLevel != ''">
 			AND USER_LEVEL = #{userLevel}
 		</if>
 	</select>
-	
+
 	<!-- 查询租赁产品信息 -->
 	<select id="getLeaseProduct" parameterType="java.lang.Integer" resultType="Product">
-		SELECT 
-			<include refid="product" />
-		FROM 
-			TB_IAMBERRY_PRODUCT_INFO 
-		WHERE 
-			PRODUCT_ID = #{productId}
-			and
-			PRODUCT_RENT_TYPE = 2
+		SELECT
+		<include refid="product" />
+		FROM
+		TB_IAMBERRY_PRODUCT_INFO
+		WHERE
+		PRODUCT_ID = #{productId}
+		and
+		PRODUCT_RENT_TYPE = 2
 	</select>
 
-    <!-- 获取优惠二维码赠送礼品信息 -->
-    <select id="listQrcodeGift" parameterType="QrcodeGift" resultType="QrcodeGift">
-        SELECT
-         *
-        FROM
-          TB_IAMBERRY_QRCODE_GIFT
-        <where>
-            <if test="qrcodeStatus != null and qrcodeStatus != ''">
-                QRCODE_STATUS = #{qrcodeStatus}
-            </if>
-            <if test="qrcodeId != null and qrcodeId != ''">
-                AND QRCODE_ID = #{qrcodeId}
-            </if>
-            <if test="qrcodeColorId != null and qrcodeColorId != ''">
-                AND QRCODE_COLOR_ID = #{qrcodeColorId}
-            </if>
-        </where>
-        ORDER BY QRCODE_CREATE_TIME DESC
-        <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
-            LIMIT ${page.recordBegin},${page.pageSize}
-        </if>
-    </select>
+	<!-- 获取优惠二维码赠送礼品信息 -->
+	<select id="listQrcodeGift" parameterType="QrcodeGift" resultType="QrcodeGift">
+		SELECT
+		*
+		FROM
+		TB_IAMBERRY_QRCODE_GIFT
+		<where>
+			<if test="qrcodeStatus != null and qrcodeStatus != ''">
+				QRCODE_STATUS = #{qrcodeStatus}
+			</if>
+			<if test="qrcodeId != null and qrcodeId != ''">
+				AND QRCODE_ID = #{qrcodeId}
+			</if>
+			<if test="qrcodeColorId != null and qrcodeColorId != ''">
+				AND QRCODE_COLOR_ID = #{qrcodeColorId}
+			</if>
+		</where>
+		ORDER BY QRCODE_CREATE_TIME DESC
+		<if test="page!=null and page.pageSize>0 ">
+			LIMIT ${page.recordBegin},${page.pageSize}
+		</if>
+	</select>
 
-    <!-- 获取优惠二维码赠送礼品信息数量 -->
-    <select id="listQrcodeGiftCount" parameterType="QrcodeGift" resultType="Integer">
-        SELECT
-         count(QRCODE_ID)
-        FROM
-          TB_IAMBERRY_QRCODE_GIFT
-        <where>
-            <if test="qrcodeStatus != null and qrcodeStatus != ''">
-                QRCODE_STATUS = #{qrcodeStatus}
-            </if>
-            <if test="qrcodeId != null and qrcodeId != ''">
-                AND QRCODE_ID = #{qrcodeId}
-            </if>
-            <if test="qrcodeColorId != null and qrcodeColorId != ''">
-                AND QRCODE_COLOR_ID = #{qrcodeColorId}
-            </if>
-        </where>
-        ORDER BY QRCODE_CREATE_TIME DESC
-    </select>
+	<!-- 获取优惠二维码赠送礼品信息数量 -->
+	<select id="listQrcodeGiftCount" parameterType="QrcodeGift" resultType="Integer">
+		SELECT
+		count(QRCODE_ID)
+		FROM
+		TB_IAMBERRY_QRCODE_GIFT
+		<where>
+			<if test="qrcodeStatus != null and qrcodeStatus != ''">
+				QRCODE_STATUS = #{qrcodeStatus}
+			</if>
+			<if test="qrcodeId != null and qrcodeId != ''">
+				AND QRCODE_ID = #{qrcodeId}
+			</if>
+			<if test="qrcodeColorId != null and qrcodeColorId != ''">
+				AND QRCODE_COLOR_ID = #{qrcodeColorId}
+			</if>
+		</where>
+		ORDER BY QRCODE_CREATE_TIME DESC
+	</select>
 
-    <!-- 添加优惠二维码赠送礼品信息 -->
-    <insert id="addQrcodeGift" parameterType="QrcodeGift" useGeneratedKeys="true" keyProperty="qrcodeId">
+	<!-- 添加优惠二维码赠送礼品信息 -->
+	<insert id="addQrcodeGift" parameterType="QrcodeGift" useGeneratedKeys="true" keyProperty="qrcodeId">
         insert into tb_iamberry_qrcode_gift
         (
             qrcode_color_id,qrcode_name,qrcode_color_name,qrcode_pre_gift_color,
@@ -278,44 +278,44 @@
         )
     </insert>
 
-    <!-- 修改优惠二维码赠品表信息 -->
-    <update id="updateQrcodeGift" parameterType="QrcodeGift">
-      update
-        tb_iamberry_qrcode_gift
-        <set>
-                qrcode_color_id = #{qrcodeColorId},
-                qrcode_name = #{qrcodeName},
-                qrcode_color_name = #{qrcodeColorName},
-                qrcode_pre_gift_color = #{qrcodePreGiftColor},
-                qrcode_sales_gift_color = #{qrcodeSalesGiftColor},
-                qrcode_pre_discount = #{qrcodePreDiscount},
-                qrcode_sales_discount = #{qrcodeSalesDiscount},
-            <if test="qrcodeStatus != null and qrcodeStatus != ''">
-                qrcode_status = #{qrcodeStatus},
-            </if>
-                qrcode_desc = #{qrcodeDesc}
-        </set>
-        <where>
-            qrcode_id = #{qrcodeId}
-        </where>
-    </update>
+	<!-- 修改优惠二维码赠品表信息 -->
+	<update id="updateQrcodeGift" parameterType="QrcodeGift">
+		update
+		tb_iamberry_qrcode_gift
+		<set>
+			qrcode_color_id = #{qrcodeColorId},
+			qrcode_name = #{qrcodeName},
+			qrcode_color_name = #{qrcodeColorName},
+			qrcode_pre_gift_color = #{qrcodePreGiftColor},
+			qrcode_sales_gift_color = #{qrcodeSalesGiftColor},
+			qrcode_pre_discount = #{qrcodePreDiscount},
+			qrcode_sales_discount = #{qrcodeSalesDiscount},
+			<if test="qrcodeStatus != null and qrcodeStatus != ''">
+				qrcode_status = #{qrcodeStatus},
+			</if>
+			qrcode_desc = #{qrcodeDesc}
+		</set>
+		<where>
+			qrcode_id = #{qrcodeId}
+		</where>
+	</update>
 
-    <!-- 修改优惠二维码赠品表状态 -->
-    <update id="updateGiftStatus" parameterType="QrcodeGift">
-        update
-        tb_iamberry_qrcode_gift
-        <set>
-            <if test="qrcodeStatus != null and qrcodeStatus != ''">
-                qrcode_status = #{qrcodeStatus}
-            </if>
-        </set>
-        <where>
-            qrcode_id = #{qrcodeId}
-        </where>
-    </update>
+	<!-- 修改优惠二维码赠品表状态 -->
+	<update id="updateGiftStatus" parameterType="QrcodeGift">
+		update
+		tb_iamberry_qrcode_gift
+		<set>
+			<if test="qrcodeStatus != null and qrcodeStatus != ''">
+				qrcode_status = #{qrcodeStatus}
+			</if>
+		</set>
+		<where>
+			qrcode_id = #{qrcodeId}
+		</where>
+	</update>
 
-    <!-- 查询是否是商户且是否存在二维码 -->
-    <select id="getQrCodeByPlaceOpenId" parameterType="String" resultType="Integer">
+	<!-- 查询是否是商户且是否存在二维码 -->
+	<select id="getQrCodeByPlaceOpenId" parameterType="String" resultType="Integer">
         SELECT
           count(qrcode_id)
         from

+ 208 - 132
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java

@@ -25,7 +25,6 @@ import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.order.ProbationOrder;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.cart.CartService;
-import com.iamberry.wechat.face.giftCard.AgentMachineService;
 import com.iamberry.wechat.face.mq.EfastOrderService;
 import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.order.AdminProbationOrderService;
@@ -33,38 +32,36 @@ import com.iamberry.wechat.face.porduct.ProductColorService;
 import com.iamberry.wechat.tools.DateTimeUtil;
 import com.iamberry.wechat.tools.HttpClient431Util;
 import com.iamberry.wechat.tools.NameUtils;
+import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
 
 @Service
 public class EfastOrderServiceImpl implements EfastOrderService {
-	
+
 	@Autowired
 	private AdminOrderService adminOrderService;
-	
+
 	@Autowired
 	private AdminProbationOrderService adminProbationOrderService;
-	
+
 	@Autowired
 	private RatFWLogger logger;
-	
+
 	@Autowired
 	private CartService cartService;
-	
-	@Autowired
-	private AgentMachineService agentMachineService;
-	
+
 	@Autowired
 	private ProductColorService productColorService;
 
 	@Override
 	public boolean selectEfastSendOrderInfo(MQMessage message) {
 		// TODO Auto-generated method stub
-		
+
 		// 组装数据
 		Map<String, String> requestData = new HashMap<String, String>();
 		requestData.put("app_nick", NameUtils.getConfig("app_nick"));
 		requestData.put("app_key", NameUtils.getConfig("app_key"));
 		requestData.put("app_secret", NameUtils.getConfig("app_secret"));
-		requestData.put("timestamp",DateTimeUtil.format(new Date(),"yyyyMMddHHmmss"));
+		requestData.put("timestamp", DateTimeUtil.format(new Date(), "yyyyMMddHHmmss"));
 		requestData.put("app_act", message.getServiceOtherMessage());
 		requestData.put("oid", message.getServiceToMessage());
 		requestData.put("feilds", NameUtils.getConfig("order_field"));
@@ -79,7 +76,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			}
 			logger.info("get-订单号为:" + message.getServiceToMessage() + "的订单,百胜返回信息:" + resultJson);
 			JSONObject jsonObject = JSONObject.fromObject(resultJson);
-			
+
 			// default HTTP SUCCESS
 			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
 			// 发货状态 : shipping_status
@@ -87,9 +84,9 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			if ("1".equals(shippingStatus)) {
 				// 更新数据:将订单从已支付、代发货状态修改为已发货状态
 				Order order = new Order();
-				order.setOldStatus(2); 								// 已支付、待发货 
-				order.setSalesOrderid(message.getServiceToMessage());	// orderId
-				order.setSalesStatus(5);								// 已发货
+				order.setOldStatus(2);                                // 已支付、待发货
+				order.setSalesOrderid(message.getServiceToMessage());    // orderId
+				order.setSalesStatus(5);                                // 已发货
 				order.setSalesPostFirm(respData.getString("shipping_name"));
 				order.setSalesPostNum(respData.getString("invoice_no"));
 				adminOrderService.updateOrderDeliver(order);
@@ -103,71 +100,73 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		}
 		return false;
 	}
-	
-	
+
 
 	@Override
 	public JSONObject selectEfastSendOrderList() throws Exception {
 		// TODO Auto-generated method stub
 		java.util.Calendar rightNow = java.util.Calendar.getInstance();
-        java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        //如果是后退几天,就写 -天数 例如:
-        rightNow.add(java.util.Calendar.DAY_OF_MONTH, -60);
-        //进行时间转换
-        String date = sim.format(rightNow.getTime()); 
+		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		//如果是后退几天,就写 -天数 例如:
+		rightNow.add(java.util.Calendar.DAY_OF_MONTH, -60);
+		//进行时间转换
+		String date = sim.format(rightNow.getTime());
 		// 组装数据
-				Map<String, String> requestData = new HashMap<String, String>();
-				requestData.put("app_nick", NameUtils.getConfig("app_nick"));
-				requestData.put("app_key", NameUtils.getConfig("app_key"));
-				requestData.put("app_secret", NameUtils.getConfig("app_secret"));
-				requestData.put("timestamp",DateTimeUtil.format(new Date(),"yyyyMMddHHmmss"));
-				requestData.put("app_act", "efast.trade.list.get");
-				requestData.put("shipping_status", "1");
-				requestData.put("sd_id", NameUtils.getConfig("sd_id"));
-				requestData.put("start_time", date);
-				requestData.put("time_type", "add");
-				requestData.put("order_status", "1");
-				requestData.put("page_no", "1");
-				requestData.put("page_size", "100");
-				try {
-					String resultJson = HttpClient431Util.doPost(requestData, NameUtils.getConfig("efast_base_url"));
-					resultJson = StringEscapeUtils.unescapeJava(resultJson); // unicode
-					logger.info("get-百胜订单列表,百胜返回信息:" + resultJson);
-					JSONObject jsonObject = JSONObject.fromObject(resultJson);
-					
-					// default HTTP SUCCESS
-					JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
-					// 发货状态 : shipping_status
-					logger.error(this, "get-百胜订单列表,百胜返回信息:" + resultJson);
-					return respData;
-				} catch (Exception e) {
-					// TODO Auto-generated catch block
-					logger.error(this, "get-百胜订单列表,百胜返回信息,发生错误:" + e.getMessage());
-					return null;
-				}
-	}
+		Map<String, String> requestData = new HashMap<String, String>();
+		requestData.put("app_nick", NameUtils.getConfig("app_nick"));
+		requestData.put("app_key", NameUtils.getConfig("app_key"));
+		requestData.put("app_secret", NameUtils.getConfig("app_secret"));
+		requestData.put("timestamp", DateTimeUtil.format(new Date(), "yyyyMMddHHmmss"));
+		requestData.put("app_act", "efast.trade.list.get");
+		requestData.put("shipping_status", "1");
+		requestData.put("sd_id", NameUtils.getConfig("sd_id"));
+		requestData.put("start_time", date);
+		requestData.put("time_type", "add");
+		requestData.put("order_status", "1");
+		requestData.put("page_no", "1");
+		requestData.put("page_size", "100");
+		try {
+			String resultJson = HttpClient431Util.doPost(requestData, NameUtils.getConfig("efast_base_url"));
+			resultJson = StringEscapeUtils.unescapeJava(resultJson); // unicode
+			logger.info("get-百胜订单列表,百胜返回信息:" + resultJson);
+			JSONObject jsonObject = JSONObject.fromObject(resultJson);
 
+			// default HTTP SUCCESS
+			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+			// 发货状态 : shipping_status
+			logger.error(this, "get-百胜订单列表,百胜返回信息:" + resultJson);
+			return respData;
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			logger.error(this, "get-百胜订单列表,百胜返回信息,发生错误:" + e.getMessage());
+			return null;
+		}
+	}
 
 
 	@Override
 	public boolean addOrderInfoToEfast(MQMessage message) throws Exception {
-		
+
 		// orderInfo
 		Order order = adminOrderService.getShopOrderByOrderId(message.getServiceToMessage());
 		if (order == null || order.getSalesOrderid() == null) {
 			return false;
 		}
-		
+
 		List<OrderItem> items = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
-		
+
+		//获取当前水机产品类型
+		ShopSystemRule rule = adminOrderService.getReluByRid(237);
+
 		// request url
 		String url = NameUtils.getConfig("efast_base_url");
-		
+
 		// set Requeset Data
 		Map<String, String> requestData = new HashMap<String, String>();
-		
+		Map<String, String> otherData = new HashMap<String, String>();
+
 		int money = order.getSalesYetAmount();
-		
+
 		double couponMoney = 0;
 		double avgPercentage = 0.0;  //均摊比例
 		//将优惠券抵消金额加入实付金额中
@@ -178,16 +177,16 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			CouponType couponType = cartService.getCouponReduceByItemId(couponItem);
 			if (null != couponType) {
 				switch (couponType.getCouponType()) {
-				case 1:
-					couponMoney = couponType.getCouponReduce();
-					break;
-				case 2:
-					couponMoney = order.getSalesAmount() * couponType.getCouponReduce()/100;
-					break;
+					case 1:
+						couponMoney = couponType.getCouponReduce();
+						break;
+					case 2:
+						couponMoney = order.getSalesAmount() * couponType.getCouponReduce() / 100;
+						break;
 				}
 			}
 		}
-		
+
 		//只计算用户用微信支付的金额,不包含余额支付
 		if (order.getBalancePayAmount() != null && !"".equals(order.getBalancePayAmount().toString())) {
 			money = money - order.getBalancePayAmount().intValue();
@@ -200,35 +199,41 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 				avgMoney += item.getItemNum().intValue() * item.getItemProductDiscount();
 			}
 			//计算均摊比例
-			avgPercentage = 1 - couponMoney/avgMoney;
+			avgPercentage = 1 - couponMoney / avgMoney;
 		}
-		
+
 		/**
 		 * 系统级参数
 		 */
 		requestData.put("app_nick", NameUtils.getConfig("app_nick"));
 		requestData.put("app_key", NameUtils.getConfig("app_key"));
 		requestData.put("app_secret", NameUtils.getConfig("app_secret"));
-		requestData.put("timestamp",DateTimeUtil.format(new Date(),"yyyyMMddHHmmss"));
+		requestData.put("timestamp", DateTimeUtil.format(new Date(), "yyyyMMddHHmmss"));
 		requestData.put("app_act", message.getServiceOtherMessage()); // "efast.trade.new.add"
-		
+
+		otherData.put("app_nick", NameUtils.getConfig("app_nick"));
+		otherData.put("app_key", NameUtils.getConfig("app_key"));
+		otherData.put("app_secret", NameUtils.getConfig("app_secret"));
+		otherData.put("timestamp", DateTimeUtil.format(new Date(), "yyyyMMddHHmmss"));
+		otherData.put("app_act", message.getServiceOtherMessage()); // "efast.trade.new.add"
+
 		/**
 		 * 订单基本信息
 		 */
-		String [] addressDesc = order.getSalesAddressInfo().split("-");
-		
+		String[] addressDesc = order.getSalesAddressInfo().split("-");
+
 		//判断收货地址从而选择仓库
 		String sd_id = NameUtils.getConfig("sd_id");
-		
+
 		String address = addressDesc[3];
-        if (addressDesc[3]!=null) {
-            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
-            Matcher m = p.matcher(addressDesc[3]);
-            if (m.find()) {
-            	address = m.replaceAll("");
+		if (addressDesc[3] != null) {
+			Pattern p = Pattern.compile("\\s*|\t|\r|\n");
+			Matcher m = p.matcher(addressDesc[3]);
+			if (m.find()) {
+				address = m.replaceAll("");
 			}
-        }
-		
+		}
+
 		String provinceName = addressDesc[0];
 		if (addressDesc[0].indexOf("北京") != -1) {
 			provinceName = "北京";
@@ -240,78 +245,149 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			provinceName = "重庆";
 		}
 		Map<String, Object> orderData = new HashMap<String, Object>();
-		orderData.put("add_time", DateTimeUtil.format(order.getSalesCreateDate()));		// 时间
-		orderData.put("address", address);												// 收货地址
-		orderData.put("city_name", addressDesc[1]); 									// 城市
-		orderData.put("consignee", order.getSalesAddressName());						// 收货人
-		orderData.put("district_name", addressDesc[2]);									// 区域
-		orderData.put("email", "");														// email
-		orderData.put("goods_amount", (order.getSalesAmount()/100.0));					// 商品总价
-		orderData.put("goods_count", items.size());										// 产品数量
-		orderData.put("mobile", order.getSalesAddressTel());							// 手机号码
-		orderData.put("money_paid", (money/100.0));										// 已付款
-		orderData.put("oid", order.getSalesOrderid());									// 订单号
-		orderData.put("order_amount", (money/100.0));									// 应付款,应付款金额要与已付款金额相同
-		
-		
+		Map<String, Object> filterData = new HashMap<String, Object>();
+		orderData.put("add_time", DateTimeUtil.format(order.getSalesCreateDate()));        // 时间
+		orderData.put("address", address);                                                // 收货地址
+		orderData.put("city_name", addressDesc[1]);                                    // 城市
+		orderData.put("consignee", order.getSalesAddressName());                        // 收货人
+		orderData.put("district_name", addressDesc[2]);                                    // 区域
+		orderData.put("email", "");                                                        // email
+		orderData.put("goods_amount", (order.getSalesAmount() / 100.0));                    // 商品总价
+		//orderData.put("goods_count", items.size());                                        // 产品数量
+		orderData.put("mobile", order.getSalesAddressTel());                            // 手机号码
+		orderData.put("money_paid", (money / 100.0));                                        // 已付款
+		orderData.put("oid", order.getSalesOrderid());                                    // 订单号
+		orderData.put("order_amount", (money / 100.0));                                    // 应付款,应付款金额要与已付款金额相同
+
+		orderData.put("pay_name", "weixinpay");                                            // 支付方式
+		orderData.put("pay_time", DateTimeUtil.format(order.getSalesTransactionDate()));// 支付时间
+		orderData.put("postscript", order.getSalesUserRemark());                        // 买家留言
+		orderData.put("province_name", provinceName);                                    // 省份
+		orderData.put("sd_id", sd_id);                                                    // 对应 efast 店铺 id
+		orderData.put("shipping_fee", 0);                                                // 快递费
+		orderData.put("shipping_name", "yto");                                            // 快递公司代码
+		orderData.put("tel", "");                                            // 我司电话
+		orderData.put("to_buyer", "");                                                    // 商家备注
+		orderData.put("total_amount", (order.getSalesAmount() / 100.0));                    // 订单总额
+		orderData.put("user_name", order.getSalesOpenid());                            // 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复
+		orderData.put("zipcode", order.getSalesAddressPostnum());                        // 邮编
+
+		filterData.putAll(orderData);
+
 		/**
 		 * 产品信息
 		 */
+		String[] productType = null;
+		if (rule != null && rule.getRuleDesc() != null) {
+			String type = rule.getRuleDesc().split(":")[1];
+			productType = type.split(",");
+		}
 		List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
+		List<Map<String, Object>> filterMap = new ArrayList<Map<String, Object>>();
+		boolean mapFlag = false;        //标识是否推送百胜
+		boolean filterFlag = false;        //标识是否推送百胜
+		int filterMoney = 0;				//除水机外的金额
+		int orderItem = 0;
+		int filterItem = 0;
 		for (OrderItem item : items) {
 			Map<String, Object> orders1 = new HashMap<String, Object>();
-			orders1.put("goods_name", item.getItemProductName());							// 产品名称
-			orders1.put("goods_number", item.getItemNum());									// 产品数量
-			orders1.put("goods_price", (item.getItemProductPrice()/100.0));					// 产品原价
-			orders1.put("outer_sku", item.getProduectRemark());								// 产品SKU
-			orders1.put("payment_ft", (item.getItemProductDiscount()/100.0*avgPercentage*item.getItemNum()));				// 产品分摊价
-			maps.add(orders1);
+			orders1.put("goods_name", item.getItemProductName());                            // 产品名称
+			orders1.put("goods_number", item.getItemNum());                                    // 产品数量
+			orders1.put("goods_price", (item.getItemProductPrice() / 100.0));                    // 产品原价
+			orders1.put("outer_sku", item.getProduectRemark());                                // 产品SKU
+			orders1.put("payment_ft", (item.getItemProductDiscount() / 100.0 * avgPercentage * item.getItemNum()));                // 产品分摊价
+			if (productType != null) {
+				boolean productFlag = false; //用来判断当前产品是否为水机
+				for (int i = 0; i < productType.length; i++) {
+					if (item.getItemProductType() == Integer.parseInt(productType[i])) {
+						mapFlag = true;
+						productFlag = true;
+					}
+				}
+				if (productFlag) {
+					maps.add(orders1);
+					orderItem++;
+				} else {
+					filterFlag = true;
+					filterMap.add(orders1);
+					filterItem++;
+					filterMoney += item.getItemProductDiscount() / 100 * item.getItemNum();
+				}
+			} else {
+				maps.add(orders1);
+				mapFlag = true;
+			}
 		}
-		
-		orderData.put("orders", maps);													// 订单产品
-		orderData.put("pay_name", "weixinpay");											// 支付方式
-		orderData.put("pay_time", DateTimeUtil.format(order.getSalesTransactionDate()));// 支付时间
-		orderData.put("postscript", order.getSalesUserRemark());						// 买家留言
-		orderData.put("province_name", provinceName);									// 省份
-		orderData.put("sd_id", sd_id);													// 对应 efast 店铺 id
-		orderData.put("shipping_fee", 0);												// 快递费
-		orderData.put("shipping_name", "yto");											// 快递公司代码
-		orderData.put("tel", "");											// 我司电话
-		orderData.put("to_buyer", "");													// 商家备注
-		orderData.put("total_amount", (order.getSalesAmount()/100.0));					// 订单总额
-		orderData.put("user_name", order.getSalesOpenid());							// 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复
-		orderData.put("zipcode", order.getSalesAddressPostnum());						// 邮编
-		
-		
+		orderData.put("goods_count", orderItem);
+		orderData.put("orders", maps);                                                    // 订单产品
+
+
 		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
-		String orderDataStr = null;;
+		String orderDataStr = null;
+		String filterDataStr = null;
 		try {
-			orderDataStr = mapper.writeValueAsString(orderData);
+			if (mapFlag) {
+				orderDataStr = mapper.writeValueAsString(orderData);
+			}
+			if (filterFlag) {
+				filterData.put("oid", "ZP" + order.getSalesOrderid());
+				filterData.put("user_name", "ZP" + order.getSalesOpenid());
+				filterData.put("goods_amount", filterMoney);
+				filterData.put("money_paid", filterMoney);
+				filterData.put("order_amount", filterMoney);
+				filterData.put("total_amount", filterMoney);
+				filterData.put("goods_count", filterItem);
+				filterData.put("orders", filterMap);                                                //非水机等订单产品
+				filterDataStr = mapper.writeValueAsString(filterData);
+			}
 		} catch (JsonProcessingException e2) {
 			e2.printStackTrace();
 		}
-		
+
 		requestData.put("info", orderDataStr);
-		
+		otherData.put("info", filterDataStr);
+
 		try {
-			String result = HttpClient431Util.doGet(requestData, url);
-			result = StringEscapeUtils.unescapeJava(result); // unicode 编码
-			logger.info("add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
-			// parse JSON String to Object
-			JSONObject jsonObject = JSONObject.fromObject(result);
-			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
-			String oderSn = respData.getString("oder_sn");
-			if (oderSn != null) {
-				String msg = respData.getString("msg");
-				if ("success".equals(msg)) {
-					return true;
+			if (mapFlag) {
+				String result = HttpClient431Util.doGet(requestData, url);
+				result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+				logger.info("add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+				// parse JSON String to Object
+				JSONObject jsonObject = JSONObject.fromObject(result);
+				JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+				String oderSn = respData.getString("oder_sn");
+				if (oderSn != null) {
+					String msg = respData.getString("msg");
+					if ("success".equals(msg)) {
+						//return true;
+					}
+				} else {
+					logger.error(this, "add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+					//throw new Exception(respData.getString("msg"));
+				}
+			}
+			if (filterFlag) {
+				String result = HttpClient431Util.doGet(otherData, url);
+				result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+				logger.info("add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+				// parse JSON String to Object
+				JSONObject jsonObject = JSONObject.fromObject(result);
+				JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+				String oderSn = respData.getString("oder_sn");
+				if (oderSn != null) {
+					String msg = respData.getString("msg");
+					if ("success".equals(msg)) {
+						//return true;
+					}
+				} else {
+					logger.error(this, "add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+					//throw new Exception(respData.getString("msg"));
 				}
 			}
-			logger.error(this, "add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
-			throw new Exception(respData.getString("msg"));
 		} catch (Exception e) {
 			throw e;
 		}
+		return true;
 	}
 	
 	

+ 0 - 129
wateroPF-wechat-service/wateroPF-wechat-service.iml

@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="wateroPF-wechat-interface" />
-    <orderEntry type="module" module-name="wateroPF-common-core" />
-    <orderEntry type="module" module-name="wateroPF-common-tool" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:0.9.5" level="project" />
-  </component>
-</module>

+ 14 - 0
wateroPF-wechat-web/pom.xml

@@ -53,6 +53,20 @@
         </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
     <!-- 配置 -->
     <profiles>
         <profile>

+ 3 - 1
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -228,9 +228,10 @@ public class AdminOrderHandlers {
     }
 
     /**
+     * 同步订单状态
      * @param request
      * @param orderId
-     * @param type    1:销售订单;2:万元小代理赠送机器;3:万元小代理兑换机器;4:万元小代理奖励机器;5:租赁订单;6:更换滤芯
+     * @param type    1:销售订单
      * @throws Exception
      */
     @ResponseBody
@@ -270,6 +271,7 @@ public class AdminOrderHandlers {
         order.setSalesPostFirm((String) map.get("postFirm"));
         order.setSalesPostNum((String) map.get("postNum"));
         order.setOldStatus(2);
+        //order.set
         int flag = adminOrderService.updateOrderDeliver(order);
         if (flag < 1){
             msg.setData("");

+ 122 - 94
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java

@@ -1,5 +1,6 @@
 package com.iamberry.wechat.handles.cart;
 
+import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -11,6 +12,8 @@ import javax.servlet.http.HttpServletRequest;
 
 import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.core.entity.product.QrcodeGift;
+import com.iamberry.wechat.face.order.CodeService;
+import com.iamberry.wechat.service.ImberryConfig;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -47,34 +50,39 @@ import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.StaticInfo;
 
+import static com.iamberry.wechat.service.ImberryConfig.INFORM_SHIPPING;
+
 @Controller
 @RequestMapping("/wechat/cart")
 public class CartHandlers {
-	
+
 	@Autowired
 	private CartService cartService;
-	
+
 	@Autowired
 	private SystemService systemService;
-	
+
 	@Autowired
 	private AdminOrderService adminOrderService;
-	
+
 	@Autowired
 	private PayService payService;
-	
+
 	@Autowired
 	private MQServiceProxy mQservice;
 
 	@Autowired
 	private MemberService memberService;
-	
+
 	@Autowired
 	private CouponItemService couponItemService;
-	
+
 	@Autowired
 	private ProductInfoService productInfoService;
-	
+
+	@Autowired
+	private CodeService codeService;
+
 	/**
 	 * 进入购物车页面
 	 * @param request
@@ -89,7 +97,7 @@ public class CartHandlers {
 		//member.setUserId(11907);
 		//member.setUserOpenid("o-icas-WiwbEXfwO1wLGDKQ1iWJU");
 		List<CartDto> cartList = cartService.selectCartByOpenId(member.getUserOpenid());
-        String userQrcodeType = request.getParameter("userQrcodeType");
+		String userQrcodeType = request.getParameter("userQrcodeType");
 		
 		/*
 		 * 金额统计
@@ -98,7 +106,7 @@ public class CartHandlers {
 		if (null != cartList && cartList.size() > 0) {
 
 
-            //如果是有二维码的商户,进入后显示优惠价
+            /*//如果是有二维码的商户,进入后显示优惠价
             int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
             if (num > 0) {
                 QrcodeGift gift = new QrcodeGift();
@@ -114,27 +122,28 @@ public class CartHandlers {
                         }
                     }
                 }
-            }
+            }*/
 
-            if (userQrcodeType != null) {
-                QrcodeGift gift = new QrcodeGift();
-                List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-                if (giftList != null && giftList.size() > 0 && cartList != null && cartList.size() > 0) {
-                    for (CartDto cartDto : cartList) {
-                        for (QrcodeGift qrcodeGift : giftList) {
-                            if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-                                if ("1".equals(userQrcodeType) && qrcodeGift.getQrcodePreDiscount() != null
-                                    && qrcodeGift.getQrcodePreDiscount() > 0) {
-                                    cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-                                } else if ("2".equals(userQrcodeType) && qrcodeGift.getQrcodeSalesDiscount() != null
-                                    && qrcodeGift.getQrcodeSalesDiscount() > 0) {
-                                    cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
-                                }
-                            }
-                        }
-                    }
-                }
-            }
+			if (userQrcodeType != null) {
+				QrcodeGift gift = new QrcodeGift();
+				gift.setQrcodeStatus(1);
+				List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
+				if (giftList != null && giftList.size() > 0 && cartList != null && cartList.size() > 0) {
+					for (CartDto cartDto : cartList) {
+						for (QrcodeGift qrcodeGift : giftList) {
+							if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
+								if ("1".equals(userQrcodeType) && qrcodeGift.getQrcodePreDiscount() != null
+										&& qrcodeGift.getQrcodePreDiscount() > 0) {
+									cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
+								} else if ("2".equals(userQrcodeType) && qrcodeGift.getQrcodeSalesDiscount() != null
+										&& qrcodeGift.getQrcodeSalesDiscount() > 0) {
+									cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
+								}
+							}
+						}
+					}
+				}
+			}
 
 			//判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
 			//查询金牌会员模板id
@@ -148,7 +157,7 @@ public class CartHandlers {
 				return remsg;
 			}
 			//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-			if (user.getUserDealers() != null && user.getTemplateId() != null 
+			if (user.getUserDealers() != null && user.getTemplateId() != null
 					&& templateId == user.getTemplateId().intValue()  && user.getUserResType().intValue() == 3) {
 				//若果是金牌会员下线,产品的价格就以优惠价显示
 				for (CartDto cartDto : cartList) {
@@ -163,15 +172,15 @@ public class CartHandlers {
 					}
 				}
 			}
-			
+
 			//根据openid查询该用户是否购买过订单
 			ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 			shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
 			shopSalesOrderDto.setSalesStatus("2");
 			int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
-			
+
 			for (CartDto cartDto : cartList) {
-				
+
 				//如果购买过订单,则滤芯的价格可按折扣价购买
 				if (orderNum > 0) {
 					if (cartDto.getProductType().intValue() == 2) {
@@ -186,7 +195,7 @@ public class CartHandlers {
 						}
 					}
 				}
-				
+
 				if (cartDto.getProductStatus() != null && cartDto.getProductStatus() == 1) { 	// 产品状态:在售
 					total += cartDto.getCartNum() * cartDto.getProductDiscount();
 				}
@@ -203,14 +212,14 @@ public class CartHandlers {
 		map.put("cartDesc", ResultInfo.CARTDESC);
 		map.put("cart_url", ResultInfo.CART_URL);
 		map.put("userQrcodeType",userQrcodeType);
-		
+
 		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		remsg.setResultCode(ResultInfo.SUCCESSCODE);
 		remsg.setStatus(true);
 		remsg.setData(map);
 		return remsg;
 	}
-	
+
 	/**
 	 * 获取购物车数量
 	 * @param request
@@ -233,7 +242,7 @@ public class CartHandlers {
 		remsg.setData(cartNum);
 		return remsg;
 	}
-	
+
 	/**
 	 * 首页添加商品到购物车
 	 * @param productId
@@ -243,14 +252,14 @@ public class CartHandlers {
 	 */
 	@ResponseBody
 	@RequestMapping("/addProductToCart")
-	public ResultMsg addProductToCart(@RequestParam("productId") String productId, 
-			@RequestParam("colorId") Integer colorId,
-			@RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum,
-			HttpServletRequest request) throws Exception {
+	public ResultMsg addProductToCart(@RequestParam("productId") String productId,
+									  @RequestParam("colorId") Integer colorId,
+									  @RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum,
+									  HttpServletRequest request) throws Exception {
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		CartDto cartDto = new CartDto();
 		ResultMsg remsg=new ResultMsg();
-		
+
 		Integer pid = 0;
 		if (productId != null && !"".equals(productId) && !"null".equals(productId) && StaticInfo.pattern.matcher(productId).find()) {
 			pid = Integer.parseInt(productId);
@@ -258,7 +267,7 @@ public class CartHandlers {
 			if (productId == null || "".equals(productId)) {
 				remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 				remsg.setResultCode(ResultInfo.ERRORCODE);
-				remsg.setStatus(false);	
+				remsg.setStatus(false);
 				return remsg;
 			}
 			try {
@@ -267,12 +276,12 @@ public class CartHandlers {
 			} catch (Exception e) {
 				remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 				remsg.setResultCode(ResultInfo.ERRORCODE);
-				remsg.setStatus(false);	
+				remsg.setStatus(false);
 				return remsg;
 			}
 			return remsg;
 		}
-		
+
 		cartDto.setCartOpenId(openId);
 		cartDto.setCartProductId(pid);
 		cartDto.setCartColorId(colorId);
@@ -309,7 +318,7 @@ public class CartHandlers {
 		}
 		return remsg;
 	}
-	
+
 	/**
 	 * 	点击加号按钮添加商品到购物车
 	 * @param request
@@ -321,8 +330,8 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping(value = "/addCart",method = RequestMethod.GET)
 	public ResultMsg  addCart(HttpServletRequest request,@RequestParam("productId") Integer productId,
-			@RequestParam("colorId") Integer colorId,
-			@RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
+							  @RequestParam("colorId") Integer colorId,
+							  @RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		ResultMsg remsg=new ResultMsg();
 		CartDto cartDto = new CartDto();
@@ -343,7 +352,7 @@ public class CartHandlers {
 		}
 		return remsg;
 	}
-	
+
 	/**
 	 * 	点击减号按钮删除商品
 	 * @param request
@@ -355,8 +364,8 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping(value = "/deleteCart",method = RequestMethod.GET)
 	public ResultMsg  deleteCart(HttpServletRequest request,@RequestParam("productId") Integer productId,
-			@RequestParam("colorId") Integer colorId,
-			@RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
+								 @RequestParam("colorId") Integer colorId,
+								 @RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		ResultMsg remsg=new ResultMsg();
 		CartDto cartDto = new CartDto();
@@ -368,7 +377,7 @@ public class CartHandlers {
 		if (productNum != null && productNum > 1) {
 			cartDto.setCartNum(productNum - cartNum);
 			num = cartService.updateCartByOpenId(cartDto);
-		} 
+		}
 		if (num > 0) {
 			remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 			remsg.setResultCode(ResultInfo.SUCCESSCODE);
@@ -380,7 +389,7 @@ public class CartHandlers {
 		}
 		return remsg;
 	}
-	
+
 	/**
 	 * 点击垃圾桶按钮删除购物车物品信息
 	 * @param request
@@ -389,7 +398,7 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping(value = "/deleteCartByProductId",method = RequestMethod.GET)
 	public ResultMsg deleteCartByProductId(HttpServletRequest request,@RequestParam("productId") Integer productId,
-			@RequestParam("colorId") Integer colorId) throws Exception{
+										   @RequestParam("colorId") Integer colorId) throws Exception{
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		CartDto cartDto = new CartDto();
 		ResultMsg remsg=new ResultMsg();
@@ -407,9 +416,9 @@ public class CartHandlers {
 		}
 		return remsg;
 	}
-	
+
 	/**
-	 * 
+	 *
 	 * 查询订单列表页面
 	 * @param request
 	 * @param pageSize
@@ -422,10 +431,10 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping(value = "/selectShopOrder")
 	public  ResultMsg selectShopOrder(HttpServletRequest request,
-			@RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize, 
-			@RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
-			@RequestParam(value = "salesStatus",defaultValue = "")String salesStatus,
-			@RequestParam(value = "text",defaultValue = "")String text) throws Exception {
+									  @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
+									  @RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
+									  @RequestParam(value = "salesStatus",defaultValue = "")String salesStatus,
+									  @RequestParam(value = "text",defaultValue = "")String text) throws Exception {
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		String beginDate = request.getParameter("beginDate");
 		PaperBean bean = new PaperBean();
@@ -444,7 +453,7 @@ public class CartHandlers {
 		bean.setPaperData(pageNO, pageSize);
 		List<ShopOrderAndItemDto> shopOrderList = cartService.selectShopOrder(bean);
 		ShopSystemRule shopSystemRule = this.adminOrderService.getReluByRid(109);
-		
+
 		//查询订单列表时同步百胜信息
 		if (null != shopOrderList && shopOrderList.size() > 0) {
 			for (ShopOrderAndItemDto orderDto : shopOrderList) {
@@ -479,7 +488,7 @@ public class CartHandlers {
 				}
 			}
 		}
-		
+
 		Integer pageCount = cartService.getOrderNumByOpenId(bean);
 		int count = pageCount % pageSize == 0? pageCount/pageSize:(pageCount/pageSize)+1;
 		Map<String,Object> map = new HashMap<String,Object>();
@@ -492,8 +501,8 @@ public class CartHandlers {
 		remsg.setData(map);
 		return remsg;
 	}
-	
-	
+
+
 	/**
 	 * 查询订单详情
 	 * @param request
@@ -522,30 +531,30 @@ public class CartHandlers {
 			if (null != couponType) {
 				int money = 0;
 				switch (couponType.getCouponType()) {
-				case 1:
-					money = couponType.getCouponReduce();
-					break;
-				case 2:
-					money = shopSalesOrderDto.getSalesAmount() - shopSalesOrderDto.getSalesAmount() * couponType.getCouponReduce()/100;
-					break;
+					case 1:
+						money = couponType.getCouponReduce();
+						break;
+					case 2:
+						money = shopSalesOrderDto.getSalesAmount() - shopSalesOrderDto.getSalesAmount() * couponType.getCouponReduce()/100;
+						break;
 				}
 				shopSalesOrderDto.setCouponReduce(money);
 			}
 			orderItemList = cartService.selectShopOrderItem(orderId);
-			
+
 			//判断该订单是否可以支付
 			if (orderItemList != null && orderItemList.size() > 0) {
 				if ("1".equals(shopSalesOrderDto.getSalesStatus())) {
 					shopSalesOrderDto.setEfficacious(true);
 					for (ShopOrderItemDto shopOrderItemDto : orderItemList) {
-						if (!"1".equals(shopOrderItemDto.getProductStatus()) &&  
+						if (!"1".equals(shopOrderItemDto.getProductStatus()) &&
 								shopOrderItemDto.getItemProductType().intValue() != shopSystemRule.getRuleNum().intValue()) {
 							shopSalesOrderDto.setEfficacious(false);
 						}
 					}
 				}
 			}
-			
+
 			shopSalesOrderDto.setOrderItemList(orderItemList);
 		}
 		if (shopSalesOrderDto == null) {
@@ -588,8 +597,8 @@ public class CartHandlers {
 		remsg.setStatus(true);
 		return remsg;
 	}
-	
-	
+
+
 	/**
 	 * 订单页面支付方法
 	 * @param request
@@ -613,7 +622,7 @@ public class CartHandlers {
 			shopSalesOrderDto = cartService.getShopOrderByOrderId(orderId, openId);
 			orderItemList = cartService.selectShopOrderItem(orderId);
 			Member member = memberService.getMemberByUserOpenId(openId);
-			
+
 			//获取账户余额,判断是否在可用范围内
 			int balancePayAmount=shopSalesOrderDto.getBalancePayAmount();
 			int total = shopSalesOrderDto.getSalesYetAmount();
@@ -641,10 +650,10 @@ public class CartHandlers {
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		msg.setData(dto);
 		msg.setStatus(true);
-		
+
 		return msg;
 	}
-	
+
 	/**
 	 * 	取消订单
 	 * @param request
@@ -655,8 +664,8 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping("/cancelOrder")
 	public ResultMsg cancelOrder(HttpServletRequest request,
-			@RequestParam(value = "orderId",defaultValue = "")String orderId, 
-			@RequestParam(value = "status",defaultValue = "-1") Integer status)  throws Exception{
+								 @RequestParam(value = "orderId",defaultValue = "")String orderId,
+								 @RequestParam(value = "status",defaultValue = "-1") Integer status)  throws Exception{
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		ResultMsg remsg=new ResultMsg();
 		if (null != orderId && !"".equals(orderId)) {
@@ -704,8 +713,8 @@ public class CartHandlers {
 			return remsg;
 		}
 	}
-	
-	
+
+
 	/**
 	 * 	订单退货或退款
 	 * @param request
@@ -718,16 +727,17 @@ public class CartHandlers {
 	@ResponseBody
 	@RequestMapping("/returnOrder")
 	public ResultMsg returnOrder(HttpServletRequest request,
-			@RequestParam(value = "orderId",defaultValue = "")String orderId,
-			@RequestParam(value = "remark",defaultValue = "")String remark,
-			@RequestParam(value = "returnOrderId",defaultValue = "")String returnOrderId,
-			@RequestParam(value = "status",defaultValue = "-1") Integer status) throws Exception {
+								 @RequestParam(value = "orderId",defaultValue = "")String orderId,
+								 @RequestParam(value = "remark",defaultValue = "")String remark,
+								 @RequestParam(value = "returnOrderId",defaultValue = "")String returnOrderId,
+								 @RequestParam(value = "status",defaultValue = "-1") Integer status) throws Exception {
 		ResultMsg remsg=new ResultMsg();
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		Order order = new Order();
 		order.setSalesOrderid(orderId);
 		order.setOldStatus(status);
 		ShopSystemRule shopSystemRule = this.adminOrderService.getReluByRid(102);
+		ShopSystemRule rule = this.adminOrderService.getReluByRid(240);	//获取需要发短信的电话号码
 		if (null != orderId && !"".equals(orderId)) {
 			ShopSalesOrderDto orderDto = this.cartService.getOpenIdAndStatus(orderId);
 			if (orderDto != null) {
@@ -756,6 +766,12 @@ public class CartHandlers {
 						order.setSalesReturnDes(remark);
 						cartService.updateOrderByOrderId(order);
 						remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+						try {
+							String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT,  "退款 ");
+							codeService.informShipping(rule.getRuleDesc(),text);
+						} catch (Exception e) {
+							System.out.println("订单退款发送消息失败!");
+						}
 						remsg.setResultCode(ResultInfo.SUCCESSCODE);
 						remsg.setStatus(true);
 						return remsg;
@@ -780,6 +796,12 @@ public class CartHandlers {
 							order.setSalesReturnDes(remark);
 							order.setSalesChangeOrderid(returnOrderId);
 							cartService.updateOrderByOrderId(order);
+							try {
+								String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "退货");
+								codeService.informShipping(rule.getRuleDesc(),text);
+							} catch (Exception e) {
+								System.out.println("订单退货发送消息失败!");
+							}
 							remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 							remsg.setResultCode(ResultInfo.SUCCESSCODE);
 							remsg.setStatus(true);
@@ -787,7 +809,7 @@ public class CartHandlers {
 						}
 					}
 				}
-				
+
 			} else {
 				remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 				remsg.setResultCode(ResultInfo.ERRORCODE);
@@ -797,7 +819,7 @@ public class CartHandlers {
 		}
 		return remsg;
 	}
-	
+
 	/**
 	 * 订单换货
 	 * @param request
@@ -806,18 +828,18 @@ public class CartHandlers {
 	 */
 	@ResponseBody
 	@RequestMapping("/exchangeOrder")
-	public ResultMsg exchangeOrder(HttpServletRequest request, 
-			@RequestParam(value = "orderId",defaultValue = "")String orderId, 
-			@RequestParam(value = "status",defaultValue = "-1") Integer status,
-			@RequestParam(value = "changeOrderId",defaultValue = "") String changeOrderId) throws Exception{
+	public ResultMsg exchangeOrder(HttpServletRequest request,
+								   @RequestParam(value = "orderId",defaultValue = "")String orderId,
+								   @RequestParam(value = "status",defaultValue = "-1") Integer status,
+								   @RequestParam(value = "changeOrderId",defaultValue = "") String changeOrderId) throws Exception{
 		ResultMsg remsg=new ResultMsg();
-		
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		Order order = new Order();
 		order.setSalesOrderid(orderId);
 		order.setSalesChangeOrderid(changeOrderId);
 		order.setOldStatus(status);
 		ShopSystemRule shopSystemRule = this.adminOrderService.getReluByRid(103);
+		ShopSystemRule rule = this.adminOrderService.getReluByRid(240);	//获取需要发短信的电话号码
 		if (null != orderId && !"".equals(orderId)) {
 			ShopSalesOrderDto orderDto = this.cartService.getOpenIdAndStatus(orderId);
 			if (orderDto != null) {
@@ -842,6 +864,12 @@ public class CartHandlers {
 					} else {
 						order.setSalesStatus(11);
 						adminOrderService.updateOrderStatusByOrderId(order);
+						try {
+							String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "换货");
+							codeService.informShipping(rule.getRuleDesc(),text);
+						} catch (Exception e) {
+							System.out.println("订单换货发送消息失败!");
+						}
 						remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 						remsg.setResultCode(ResultInfo.SUCCESSCODE);
 						remsg.setStatus(true);

+ 114 - 113
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/ProductInfoHandler.java

@@ -45,7 +45,7 @@ import org.springframework.web.context.WebApplicationContext;
 @Controller
 @RequestMapping("/wechat/product")
 public class ProductInfoHandler {
-	
+
 	@Autowired
 	private ProductInfoService productInfoService;
 	@Autowired
@@ -58,11 +58,11 @@ public class ProductInfoHandler {
 	private SystemService systemService;
 	@Autowired
 	private CartService cartService;
-	@Autowired 
+	@Autowired
 	private ProductColorService productColorService;
 	@Autowired
 	private PlaceInfoService placeInfoService;
-	
+
 	/**
 	 * 首页进入商城
 	 * @param request
@@ -72,12 +72,12 @@ public class ProductInfoHandler {
 	@ResponseBody
 	@RequestMapping(value = "/productIndex",method = RequestMethod.POST)
 	public ResultMsg productIndex(HttpServletRequest request,
-			@RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize, 
-			@RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
-			@RequestParam(value = "productName", defaultValue = "")String productName,
-			@RequestParam(value = "productType", defaultValue = "1") Integer productType,
-			@RequestParam(value = "productRentType", defaultValue = "1") Integer productRentType) throws Exception {
-		
+								  @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
+								  @RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
+								  @RequestParam(value = "productName", defaultValue = "")String productName,
+								  @RequestParam(value = "productType", defaultValue = "1") Integer productType,
+								  @RequestParam(value = "productRentType", defaultValue = "1") Integer productRentType) throws Exception {
+
 		ResultMsg remsg= new ResultMsg();
 		Member member =  WechatUtils.getUserBySession(request);
 		Product product = new Product();
@@ -91,13 +91,13 @@ public class ProductInfoHandler {
 		product.getPage().initRecordBegin();
 		List<Product> productList = productInfoService.selectPageProduct(product);
 
-		
+
 		//根据openid查询该用户是否购买过订单
 		ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 		shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
 		shopSalesOrderDto.setSalesStatus("2");
 
-		//如果是有二维码的商户,进入后显示优惠价
+		/*//如果是有二维码的商户,进入后显示优惠价
         int sum = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
         if (sum > 0) {
             QrcodeGift gift = new QrcodeGift();
@@ -113,8 +113,8 @@ public class ProductInfoHandler {
                     }
                 }
             }
-        }
-		
+        }*/
+
 		//判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
 		//查询金牌会员模板id
 		int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
@@ -127,7 +127,7 @@ public class ProductInfoHandler {
 			return remsg;
 		}
 		//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-		if (user.getUserDealers() != null && user.getTemplateId() != null && 
+		if (user.getUserDealers() != null && user.getTemplateId() != null &&
 				templateId == user.getTemplateId().intValue() && user.getUserResType().intValue() == 3) {
 			//若果是金牌会员下线,产品的价格就以优惠价显示
 			if (productList != null && productList.size() >= 1) {
@@ -144,7 +144,7 @@ public class ProductInfoHandler {
 				}
 			}
 		}
-		
+
 		int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
 		//如果购买过订单,则滤芯的价格可按折扣价购买
 		if (orderNum > 0) {
@@ -175,7 +175,7 @@ public class ProductInfoHandler {
 		remsg.setData(map);
 		return remsg;
 	}
-	
+
 	/**
 	 * 进入产品详细信息页面
 	 * @param request
@@ -187,9 +187,9 @@ public class ProductInfoHandler {
 	@ResponseBody
 	@RequestMapping("/getProductByProductId")
 	public ResultMsg getProductByProductId(HttpServletRequest request,HttpServletResponse response,
-			@RequestParam(value = "productId",defaultValue = "") String productId, 
-			@RequestParam("colorId") Integer colorId 
-			) throws Exception {
+										   @RequestParam(value = "productId",defaultValue = "") String productId,
+										   @RequestParam("colorId") Integer colorId
+	) throws Exception {
 
 		ResultMsg remsg = new ResultMsg();
 		Member member =  WechatUtils.getUserBySession(request);
@@ -209,28 +209,28 @@ public class ProductInfoHandler {
 			remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 			return remsg;
 		}
-		
+
 		if (StaticInfo.pattern.matcher(productId).find()) {
 			Product product = this.productInfoService.getProductByProductId(Integer.parseInt(productId),colorId);
 
-            String[] machineIds = {};
-            boolean codeFlag = false;
-            //获取水机产品类型
-            String machineId = systemService.selectOneShopRuleById(237).getRuleDesc();
-            if (machineId != null) {
-                String machineStr = machineId.split(":")[1];
-                machineIds = machineStr.split(",");
-            }
-            if (machineIds != null && machineIds.length > 0) {
-                for (int i = 0;i < machineIds.length;i++) {
-                    if (product.getProductType().getTypeId().intValue() == Integer.valueOf(machineIds[i])) {
-                        codeFlag = true;
-                    }
-                }
-            }
-            Map<String,Object> qrCodeMap = createQrCode(productId,colorId,member,codeFlag);
+			String[] machineIds = {};
+			boolean codeFlag = false;
+			//获取水机产品类型
+			String machineId = systemService.selectOneShopRuleById(237).getRuleDesc();
+			if (machineId != null) {
+				String machineStr = machineId.split(":")[1];
+				machineIds = machineStr.split(",");
+			}
+			if (machineIds != null && machineIds.length > 0) {
+				for (int i = 0;i < machineIds.length;i++) {
+					if (product.getProductType().getTypeId().intValue() == Integer.valueOf(machineIds[i])) {
+						codeFlag = true;
+					}
+				}
+			}
+			Map<String,Object> qrCodeMap = createQrCode(productId,colorId,member,codeFlag);
 
-            //如果是有二维码的商户,进入后显示优惠价
+            /*//如果是有二维码的商户,进入后显示优惠价
             int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
             if (num > 0) {
                 QrcodeGift gift = new QrcodeGift();
@@ -244,33 +244,34 @@ public class ProductInfoHandler {
                         }
                     }
                 }
-            }
+            }*/
 
-            //如果用户是扫描二维码进入,则显示优惠价
-            String userQrcodeType = request.getParameter("userQrcodeType");
-            if (userQrcodeType != null && !"".equals(userQrcodeType) && !"null".equals(userQrcodeType)) {
-                QrcodeGift gift = new QrcodeGift();
-                List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-                if (giftList != null && giftList.size() > 0 && product != null) {
-                    for (QrcodeGift qrcodeGift : giftList) {
-                        if (product.getColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-                            switch (userQrcodeType) {
-                                case "1":
-                                    if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
-                                        product.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-                                    }
-                                    break;
-                                case "2":
-                                    if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
-                                        product.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
-                                    }
-                                    break;
-                            }
+			//如果用户是扫描二维码进入,则显示优惠价
+			String userQrcodeType = request.getParameter("userQrcodeType");
+			if (userQrcodeType != null && !"".equals(userQrcodeType) && !"null".equals(userQrcodeType)) {
+				QrcodeGift gift = new QrcodeGift();
+				gift.setQrcodeStatus(1);
+				List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
+				if (giftList != null && giftList.size() > 0 && product != null) {
+					for (QrcodeGift qrcodeGift : giftList) {
+						if (product.getColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
+							switch (userQrcodeType) {
+								case "1":
+									if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
+										product.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
+									}
+									break;
+								case "2":
+									if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
+										product.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
+									}
+									break;
+							}
 
-                        }
-                    }
-                }
-            }
+						}
+					}
+				}
+			}
 
 			//判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
 			//查询金牌会员模板id
@@ -284,21 +285,21 @@ public class ProductInfoHandler {
 				return remsg;
 			}
 			//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-			if (user.getUserDealers() != null && user.getTemplateId() != null 
+			if (user.getUserDealers() != null && user.getTemplateId() != null
 					&& templateId == user.getTemplateId().intValue() && user.getUserResType().intValue() == 3) {
-						//若果是金牌会员下线,产品的价格就以优惠价显示
-						UserGiftDto userGiftDto = new UserGiftDto();
-						userGiftDto.setUserLevel(2);
-						userGiftDto.setUserProductId(product.getProductId());
-						userGiftDto.setUserColorId(product.getColorId());
-						//根据商品id和会员等级查询礼品信息
-						userGiftDto = productInfoService.selectUserGift(userGiftDto);
-						if (userGiftDto != null) {
-							product.setProductDiscount(userGiftDto.getUserDiscount());
-						}
-				
+				//若果是金牌会员下线,产品的价格就以优惠价显示
+				UserGiftDto userGiftDto = new UserGiftDto();
+				userGiftDto.setUserLevel(2);
+				userGiftDto.setUserProductId(product.getProductId());
+				userGiftDto.setUserColorId(product.getColorId());
+				//根据商品id和会员等级查询礼品信息
+				userGiftDto = productInfoService.selectUserGift(userGiftDto);
+				if (userGiftDto != null) {
+					product.setProductDiscount(userGiftDto.getUserDiscount());
+				}
+
 			}
-			
+
 			//根据openid查询该用户是否购买过订单
 			ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 			shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
@@ -341,7 +342,7 @@ public class ProductInfoHandler {
 			remsg.setStatus(true);
 			return remsg;
 		}
-		
+
 		try {
 			String productIdString = StaticInfo.md5.decrypt(productId);
 			Product product = this.productInfoService.getProductByProductId(Integer.parseInt(productIdString),colorId);
@@ -362,7 +363,7 @@ public class ProductInfoHandler {
 		} catch (Exception e) {
 			remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 			remsg.setResultCode(ResultInfo.ERRORCODE);
-			remsg.setStatus(false);			
+			remsg.setStatus(false);
 		}
 		return remsg;
 	}
@@ -380,12 +381,12 @@ public class ProductInfoHandler {
 		WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
 		ServletContext servletContext = webApplicationContext.getServletContext();
 		String realPath = servletContext.getRealPath(ResultInfo.QRCODE_PLACE_IMAGE);
-        Map<String,Object> map = new HashMap<String,Object>();
+		Map<String,Object> map = new HashMap<String,Object>();
 
-        if (!codeFlag) {
-            map.put("flag",false);
-            return map;
-        }
+		if (!codeFlag) {
+			map.put("flag",false);
+			return map;
+		}
 
 		//查询该分销商信息
 		PlaceInfo placeInfo = placeInfoService.getPlaceInfoByOpenId(member.getUserOpenid());
@@ -396,10 +397,10 @@ public class ProductInfoHandler {
 				map.put("flag",false);
 				return map;
 			}
-            File files = new File(realPath);
-            if (!files.exists()) {
-                files.mkdir();
-            }
+			File files = new File(realPath);
+			if (!files.exists()) {
+				files.mkdir();
+			}
 			//优惠二维码
 			StringBuilder url = new StringBuilder(NameUtils.getConfig("WECHAT_PRODUCT_DESC"));
 			url.append("?productId=");
@@ -411,7 +412,7 @@ public class ProductInfoHandler {
 			url.append("&placeOpenId=");
 			url.append(member.getUserOpenid());
 			StringBuilder name = new StringBuilder(realPath);
-            name.append("\\");
+			name.append("\\");
 			name.append(member.getUserOpenid());
 			name.append("_1_");
 			name.append(colorId);
@@ -428,7 +429,7 @@ public class ProductInfoHandler {
 			shopUrl.append("&placeOpenId=");
 			shopUrl.append(member.getUserOpenid());
 			StringBuilder shopName = new StringBuilder(realPath);
-            shopName.append("\\");
+			shopName.append("\\");
 			shopName.append(member.getUserOpenid());
 			shopName.append("_2_");
 			shopName.append(colorId);
@@ -445,7 +446,7 @@ public class ProductInfoHandler {
 		}
 		return map;
 	}
-	
+
 	/**
 	 * 获取商品详情(图文)
 	 * @param request
@@ -457,7 +458,7 @@ public class ProductInfoHandler {
 	@ResponseBody
 	@RequestMapping("/getPictureByProductId")
 	public ResultMsg getPictureByProductId(HttpServletRequest request,HttpServletResponse response,
-			@RequestParam(value = "productId",defaultValue = "") String productId) throws Exception {
+										   @RequestParam(value = "productId",defaultValue = "") String productId) throws Exception {
 		ResultMsg remsg = new ResultMsg();
 		if (productId == null) {
 			remsg.setStatus(false);
@@ -484,11 +485,11 @@ public class ProductInfoHandler {
 		} catch (Exception e) {
 			remsg.setMessage(NameUtils.getConfig("ERRORINFO"));
 			remsg.setResultCode(ResultInfo.ERRORCODE);
-			remsg.setStatus(false);			
+			remsg.setStatus(false);
 		}
 		return remsg;
 	}
-	
+
 	/**
 	 * 根据商品名称查询商品信息
 	 * @param request
@@ -500,12 +501,12 @@ public class ProductInfoHandler {
 	@ResponseBody
 	@RequestMapping("/getProductByProductName")
 	public ResultMsg getProductByProductName(HttpServletRequest request,HttpServletResponse response,
-			@RequestParam(value = "productName", defaultValue = "")String productName) throws Exception {
-		
+											 @RequestParam(value = "productName", defaultValue = "")String productName) throws Exception {
+
 		List<Product> productList = new ArrayList<Product>();
 		ResultMsg remsg=new ResultMsg();
 		Member member =  WechatUtils.getUserBySession(request);
-		
+
 		/*
 		 * 判断用户信息及其参数
 		 */
@@ -515,12 +516,12 @@ public class ProductInfoHandler {
 			remsg.setMessage(ResultInfo.loginOutError);
 			return remsg;
 		}
-		
+
 		if (null != productName && !"".equals(productName)) {
 			productName = "%" + productName + "%";
 		}
 		productList = this.productInfoService.getProductByProductName(productName);
-		
+
 		if (productList != null && productList.size() >= 1) {
 			/*
 			 * 优惠价计算
@@ -545,14 +546,14 @@ public class ProductInfoHandler {
 				}
 			}
 			if (isPrice) {
-				int price = systemService.selectOneShopRuleById(22).getRuleNum().intValue(); 
+				int price = systemService.selectOneShopRuleById(22).getRuleNum().intValue();
 				for (Product product2 : productList) {
 					product2.setProductPrice(product2.getProductDiscount());
 					product2.setProductDiscount(price);
 				}
 			}
 		}
-		
+
 		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		remsg.setResultCode(ResultInfo.SUCCESSCODE);
 		remsg.setStatus(true);
@@ -564,17 +565,17 @@ public class ProductInfoHandler {
 	 * 为当前用户获取产品分享URL
 	 * @param productId
 	 * @return
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	@ResponseBody
 	@RequestMapping(value = "/shareProductUrl", method = RequestMethod.POST)
 	public ResultMsg shareProductUrl(
 			@RequestParam(value = "productId", required = false) Integer productId,
 			HttpServletRequest request
-			) throws Exception {
+	) throws Exception {
 		ResultMsg msg = new ResultMsg();
 		msg.setResultCode(ResultInfo.ERRORCODE);
-		
+
 		Member member = WechatUtils.getUserBySession(request);
 		if (member == null || member.getUserOpenid() == null) {
 			msg.setMessage(ResultInfo.loginOutError);
@@ -584,19 +585,19 @@ public class ProductInfoHandler {
 			msg.setMessage(ResultInfo.paramFormatError);
 			return msg;
 		}
-		
+
 		StringBuffer buffer = new StringBuffer(NameUtils.getConfig("WECHAT_PRODUCT_SHARE_URL"));
 		buffer.append("?shareUser=" + StaticInfo.md5.encrypt(member.getUserOpenid()));
 		buffer.append("&productId=" + StaticInfo.md5.encrypt(productId.toString()));
 		buffer.append("&isShare=true&isProduct=true&isEnable=true"); // 是否分享,是否为产品,是否启动
-		
+
 		msg.setData(buffer.toString());
 		msg.setStatus(true);
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		return msg;
 	}
-	
+
 	/**
 	 * 商城内内部跳转产品信息详情页面
 	 * @param productId
@@ -631,15 +632,15 @@ public class ProductInfoHandler {
 				memberService.updateMemberByUserId(memberInfo);
 			}
 		} else {
-            String shareOpenid = request.getParameter("placeOpenId");
-            if(StringUtils.isNotEmpty(shareOpenid)){
-                memberService.buildChildUser(shareOpenid, member,1,1);
-            }
-        }
+			String shareOpenid = request.getParameter("placeOpenId");
+			if(StringUtils.isNotEmpty(shareOpenid)){
+				memberService.buildChildUser(shareOpenid, member,1,1);
+			}
+		}
 		request.getRequestDispatcher(NameUtils.getConfig("WECHAT_SHOP_PRODUCT_DESC_PAGE")).forward(request, response);return;
 	}
-	
-	
+
+
 	/**
 	 * 进入租赁产品详情页面
 	 * @param productId
@@ -662,7 +663,7 @@ public class ProductInfoHandler {
 	@RequestMapping(value = "/leasepProductDetails", method = RequestMethod.POST)
 	@ResponseBody
 	public ResultMsg leasepProductDetails(@RequestParam("productId") Integer productId,
-			HttpServletRequest request, HttpServletResponse response){
+										  HttpServletRequest request, HttpServletResponse response){
 		String openid="";
 		ResultMsg remsg = new ResultMsg();
 		Map<String, Object> map = new HashMap<String, Object>();

+ 16 - 16
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java

@@ -50,7 +50,7 @@ public class HomeHandler {
 	public void setHomeService(HomeService homeService) {
 		this.homeService = homeService;
 	}
-	
+
 	@Autowired
 	private ProductInfoService productInfoService;
 
@@ -59,7 +59,7 @@ public class HomeHandler {
 
 	@Autowired
 	private SystemService systemService;
-	
+
 	@Autowired
 	private CartService cartService;
 
@@ -68,21 +68,21 @@ public class HomeHandler {
 	/**
 	 * 微信商城首页URL
 	 * @return
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	@RequestMapping(value = "/index", method = RequestMethod.GET)
 	public void index(HttpServletRequest request, HttpServletResponse response) throws Exception {
-		
+
 		//如果是分享 则绑定关系
 		Member member = WechatUtils.getUserBySession(request);
-		
+
 		String shareOpenid = request.getParameter("shareOpenid");
 		if(StringUtils.isNotEmpty(shareOpenid)){
 			memberService.buildChildUser(shareOpenid, member,1,1);
 		}
 		request.getRequestDispatcher(NameUtils.getConfig("WECHAT_SHOP_INDEX")).forward(request, response);
 	}
-	
+
 	/**
 	 * 获取首页Banner、广告位信息
 	 * @param request
@@ -118,15 +118,15 @@ public class HomeHandler {
 		returnMap.put("advs", advs);
 		returnMap.put("banners", banners);
 		returnMap.put("memberOpenid", member.getUserOpenid()); 				// 当前用户信息 分享用
-		
+
 		msg.setData(returnMap); // 封装数据
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		msg.setStatus(true);
-		
+
 		return msg;
 	}
-	
+
 	/**
 	 * 首页获取产品信息
 	 * @return
@@ -141,11 +141,11 @@ public class HomeHandler {
 		Member member =  WechatUtils.getUserBySession(request);
 		// 准备数据
 		Map<String, Object> returnMap = new HashMap<String, Object>();
-		
+
 		List<Product> productList = productInfoService.selectIndexPageProduct();
 
 
-        //如果是有二维码的商户,进入后显示优惠价
+        /*//如果是有二维码的商户,进入后显示优惠价
         int sum = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
         if (sum > 0) {
             QrcodeGift gift = new QrcodeGift();
@@ -161,9 +161,9 @@ public class HomeHandler {
                     }
                 }
             }
-        }
+        }*/
+
 
-		
 		// 判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
 		// 查询金牌会员模板id
 		int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
@@ -186,7 +186,7 @@ public class HomeHandler {
 				}
 			}
 		}
-		
+
 		// 根据openid查询该用户是否购买过订单
 		ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 		shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
@@ -210,7 +210,7 @@ public class HomeHandler {
 				}
 			}
 		}
-		
+
 		returnMap.put("products", productList); 							// 产品信息,10个
 		msg.setData(returnMap); // 封装数据
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
@@ -218,5 +218,5 @@ public class HomeHandler {
 		msg.setStatus(true);
 		return msg;
 	}
-	
+
 }

+ 211 - 207
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -65,22 +65,22 @@ import com.iamberry.wechat.tools.ValidatorUtil;
 @Controller
 @RequestMapping("/wechat/order")
 public class OrderHandler {
-	
+
 	@Autowired
 	private CartService cartService;
-	
+
 	@Autowired
 	private HomeService homeService;
-	
+
 	@Autowired
 	private SystemService systemService;
-	
+
 	@Autowired
 	private ValidatorUtil validatorUtil;
-	
+
 	@Autowired
 	private PayService payService;
-	
+
 	@Autowired
 	private MemberService memberService;
 	@Autowired
@@ -106,10 +106,10 @@ public class OrderHandler {
 	@ResponseBody
 	@RequestMapping(value = "/payBefore", method = RequestMethod.POST)
 	public ResultMsg payBefore(HttpServletRequest request) throws Exception {
-		
+
 		ResultMsg msg = new ResultMsg();
 		msg.setResultCode(ResultInfo.ERRORCODE);
-		
+
 		OrderPayDto dto = new OrderPayDto();
 		// 用户信息
 		Member member = WechatUtils.getUserBySession(request);
@@ -148,7 +148,7 @@ public class OrderHandler {
 			return msg;
 		}
 
-        //如果是有二维码的商户,进入后显示优惠价
+        /*//如果是有二维码的商户,进入后显示优惠价
         int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
         if (num > 0) {
             QrcodeGift gift = new QrcodeGift();
@@ -164,13 +164,13 @@ public class OrderHandler {
                     }
                 }
             }
-        }
-		
+        }*/
+
 		//判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
 		//查询金牌会员模板id
 		int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
 		//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-		if (member.getUserDealers() != null && member.getTemplateId() != null 
+		if (member.getUserDealers() != null && member.getTemplateId() != null
 				&& templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
 			//若果是金牌会员下线,产品的价格就以优惠价显示
 			if (cartDtos != null && cartDtos.size() >= 1) {
@@ -187,7 +187,7 @@ public class OrderHandler {
 				}
 			}
 		}
-		
+
 		//根据openid查询该用户是否购买过订单
 		ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 		shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
@@ -211,14 +211,14 @@ public class OrderHandler {
 				}
 			}
 		}
-		
+
 		// 判断当前提交的购物车ID,有多少产品在售
 		int total = 0; // 支付金额
 		int sum = 0; // 产品数量
 		int productNum = 0;	//计算商品为滤芯的数量
 		int machineNum = 0;	//计算商品为水机的数量
 		boolean disable = true;	//标识,是否可用优惠券,当购买商品只有滤芯时禁止使用优惠券
-		
+
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 
 		//查询系统规则表滤芯id信息
@@ -235,6 +235,49 @@ public class OrderHandler {
 			String rolesStr = machine.split(":")[1];
 			machines = rolesStr.split(",");
 		}
+
+		String userQrcodeType = request.getParameter("userQrcodeType");
+		//存在水机时赠送4个滤芯
+		if(userQrcodeType != null && !"".equals(userQrcodeType)){
+
+			//如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
+			QrcodeGift gift = new QrcodeGift();
+			gift.setQrcodeStatus(1);
+			List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
+			if (giftList != null && giftList.size() > 0 && cartDtos != null && cartDtos.size() > 0) {
+				for (CartDto cartDto : cartDtos) {
+					for (QrcodeGift qrcodeGift : giftList) {
+						if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
+							switch (userQrcodeType) {
+								case "1":
+									if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
+										cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
+									}
+									if (qrcodeGift.getQrcodePreGiftColor() != null) {
+										for (int i = 0;i < cartDto.getCartNum();i++) {
+											preGift.append(qrcodeGift.getQrcodePreGiftColor());
+											preGift.append(",");
+										}
+									}
+									break;
+								case "2":
+									if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
+										cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
+									}
+									if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
+										for (int i = 0;i < cartDto.getCartNum();i++) {
+											preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
+											preGift.append(",");
+										}
+									}
+									break;
+							}
+						}
+					}
+				}
+			}
+		}
+
 		for (CartDto cartDto : cartDtos) {
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				total += cartDto.getCartNum() * cartDto.getProductPrice();
@@ -254,83 +297,43 @@ public class OrderHandler {
 				}
 			}
 		}
-		String userQrcodeType = request.getParameter("userQrcodeType");
-		//存在水机时赠送4个滤芯
-		if(userQrcodeType != null && !"".equals(userQrcodeType)){
-
-            //如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
-            QrcodeGift gift = new QrcodeGift();
-            List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-            if (giftList != null && giftList.size() > 0 && cartDtos != null && cartDtos.size() > 0) {
-                for (CartDto cartDto : cartDtos) {
-                    for (QrcodeGift qrcodeGift : giftList) {
-                        if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-                            switch (userQrcodeType) {
-                                case "1":
-                                    if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
-                                        cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
-                                    }
-                                    if (qrcodeGift.getQrcodePreGiftColor() != null) {
-                                        for (int i = 0;i < cartDto.getCartNum();i++) {
-                                            preGift.append(qrcodeGift.getQrcodePreGiftColor());
-                                            preGift.append(",");
-                                        }
-                                    }
-                                    break;
-                                case "2":
-                                    if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
-                                        cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
-                                    }
-                                    if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
-                                        for (int i = 0;i < cartDto.getCartNum();i++) {
-                                            preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
-                                            preGift.append(",");
-                                        }
-                                    }
-                                    break;
-                            }
-                        }
-                    }
-                }
-            }
 
-			if(preGift.toString() != null && !"".equals(preGift.toString())){
-                String[] giftss = preGift.toString().split(",");
-                ProductColor color = new ProductColor();
-                color.setPage(null);
-                List<ProductColor> colorList = productColorService.selectProductColorList(color);
-                for (int i = 0;i < giftss.length;i++) {
-                    boolean cartFlag = false;
-                    for (CartDto cart : tempCarts) {
-                        //判断是否已经存在该赠品,如果存在则数量加1
-                        if (Integer.parseInt(giftss[i]) == cart.getCartColorId() && cart.getTotal() == 0) {
-                            cart.setCartNum(cart.getCartNum().intValue() + 1);
-                            cartFlag = true;
-                        }
-                    }
-                    //如果不存在,则新增赠品
-                    if (!cartFlag) {
-                        for (ProductColor productColor : colorList) {
-                            if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
-                                CartDto cartDto = new CartDto();
-                                cartDto.setCartOpenId(member.getUserOpenid());
-                                cartDto.setCartProductId(productColor.getColorProductId());
-                                cartDto.setCartColorId(productColor.getColorId());
-                                cartDto.setCartNum(1);
-                                cartDto.setCartCreateDate(new Date());
-                                cartDto.setProductName(productColor.getColorProductName());
-                                cartDto.setProductType(productColor.getColorProductType());
-                                cartDto.setProductPrice(0);
-                                cartDto.setProductIntroduceImg(productColor.getColorProductPic());
-                                cartDto.setTotal(0);
-                                cartDto.setProductDiscount(0);
-                                cartDto.setProductRemark("赠送滤芯");
-                                cartDto.setProductColor(productColor.getColorName());
-                                tempCarts.add(cartDto);
-                            }
-                        }
-                    }
-                }
+		if(preGift.toString() != null && !"".equals(preGift.toString())){
+			String[] giftss = preGift.toString().split(",");
+			ProductColor color = new ProductColor();
+			color.setPage(null);
+			List<ProductColor> colorList = productColorService.selectProductColorList(color);
+			for (int i = 0;i < giftss.length;i++) {
+				boolean cartFlag = false;
+				for (CartDto cart : tempCarts) {
+					//判断是否已经存在该赠品,如果存在则数量加1
+					if (Integer.parseInt(giftss[i]) == cart.getCartColorId() && cart.getTotal() == 0) {
+						cart.setCartNum(cart.getCartNum().intValue() + 1);
+						cartFlag = true;
+					}
+				}
+				//如果不存在,则新增赠品
+				if (!cartFlag) {
+					for (ProductColor productColor : colorList) {
+						if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
+							CartDto cartDto = new CartDto();
+							cartDto.setCartOpenId(member.getUserOpenid());
+							cartDto.setCartProductId(productColor.getColorProductId());
+							cartDto.setCartColorId(productColor.getColorId());
+							cartDto.setCartNum(1);
+							cartDto.setCartCreateDate(new Date());
+							cartDto.setProductName(productColor.getColorProductName());
+							cartDto.setProductType(productColor.getColorProductType());
+							cartDto.setProductPrice(0);
+							cartDto.setProductIntroduceImg(productColor.getColorProductPic());
+							cartDto.setTotal(0);
+							cartDto.setProductDiscount(0);
+							cartDto.setProductRemark("赠送滤芯");
+							cartDto.setProductColor(productColor.getColorName());
+							tempCarts.add(cartDto);
+						}
+					}
+				}
 			}
 		}
 
@@ -338,14 +341,14 @@ public class OrderHandler {
 		if(productNum == cartDtos.size()) {
 			disable = false;
 		}
-		
+
 		if (sum <= 0) {
 			msg.setMessage(ResultInfo.cartEmptyError);
 			return msg;
 		}
-		
+
 		//未使用的优惠券
-		CouponItemDto cDto = new CouponItemDto();	
+		CouponItemDto cDto = new CouponItemDto();
 		cDto.setUseropenid(member.getUserOpenid());
 		cDto.setCouponUseStatus(1);
 		cDto.setBeginDate(new Date());
@@ -353,18 +356,18 @@ public class OrderHandler {
 		cDto.getPage().setPageSize(12);
 		//cDto.getPage().setPageNumber(pageNO);
 		List<CouponItemDto> list = couponItemService.getCouponItemDtoList(cDto);
-		
+
 		dto.setCouponItems(list);
-		
+
 		dto.setCartId(cartIds);// 购物车ID
 		dto.setPayTotal(total); // 支付金额,单位为分
 		dto.setCartItems(tempCarts); // 订单项
 		dto.setSuccess(true); // 请求成功
 		dto.setMeonyProportion(0);
 		dto.setBalance(member.getUserIncome());
-		
+
 		dto.setDisable(disable);
-		
+
 		//回显用户支付过的地址信息
 		Order order=cartService.getOrderRecentAddress(member.getUserOpenid());
 		if(order!=null){
@@ -376,30 +379,30 @@ public class OrderHandler {
 			map.put("salesAddressPostnum", order.getSalesAddressPostnum());
 			dto.setAddressInfo(map);
 		}
-		
+
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		msg.setData(dto);
 		msg.setStatus(true);
-		
+
 		return msg;
 	}
-	
+
 	/**
 	 * 发起支付请求
 	 * @return
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	@ResponseBody
 	@RequestMapping(value = "/pay", method = RequestMethod.POST)
 	public ResultMsg requestPay(
 			TempOrderDto temp,
 			HttpServletRequest request
-			) throws Exception {
-		
+	) throws Exception {
+
 		ResultMsg msg = new ResultMsg();
 		int machineNum = 0;//所有水机的数量
-        StringBuilder preGift = new StringBuilder();
+		StringBuilder preGift = new StringBuilder();
 		msg.setResultCode(ResultInfo.ERRORCODE);
 		//当前支付时间
 		Date nowDate=new Date();
@@ -412,7 +415,7 @@ public class OrderHandler {
 			msg.setMessage(ResultInfo.loginOutError);
 			return msg;
 		}
-		
+
 		member=memberService.getMemberByUserId(member.getUserId());
 		if (!validatorUtil.validatorObject(temp)) { // 校验订单信息是否输入有误
 			msg.setMessage(ResultInfo.paramFormatError);
@@ -441,13 +444,13 @@ public class OrderHandler {
 			msg.setMessage(ResultInfo.cartEmptyError);
 			return msg;
 		}
-		
+
 		//根据openid查询该用户是否购买过订单
 		ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
 		shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
 		shopSalesOrderDto.setSalesStatus("2");
 		int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
-		
+
 		int total = 0; // 需要支付的总额, 单位为分
 
 
@@ -455,7 +458,7 @@ public class OrderHandler {
 		int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
 		UserGiftDto userGift = null;
 		int giftNum = 0;
-		
+
 		/** 提前准备订单项数据 */
 		/** 准备数据 */
 		Order order = new Order();
@@ -463,10 +466,10 @@ public class OrderHandler {
 		List<OrderItem> list = new ArrayList<OrderItem>();
 		List<Integer> cartIds = new ArrayList<Integer>();
 		String userQrcodeType = request.getParameter("userQrcodeType");
-        int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
+		int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
 		for (CartDto cartDto : cartDtos) {
 
-            //如果是有二维码的商户,进入后显示优惠价
+            /*//如果是有二维码的商户,进入后显示优惠价
             if (num > 0) {
                 QrcodeGift gift = new QrcodeGift();
                 List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
@@ -480,45 +483,46 @@ public class OrderHandler {
                         }
                     }
                 }
-            }
+            }*/
 
 			if (userQrcodeType != null && !"".equals(userQrcodeType)) {
 
-                //如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
-                QrcodeGift gift = new QrcodeGift();
-                List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-                if (giftList != null && giftList.size() > 0) {
-                    for (QrcodeGift qrcodeGift : giftList) {
-                        if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-                            switch (userQrcodeType) {
-                                case "1":
-                                    if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
-                                        cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-                                        cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
-                                    }
-                                    if (qrcodeGift.getQrcodePreGiftColor() != null) {
-                                        for (int i = 0;i < cartDto.getCartNum();i++) {
-                                            preGift.append(qrcodeGift.getQrcodePreGiftColor());
-                                            preGift.append(",");
-                                        }
-                                    }
-                                    break;
-                                case "2":
-                                    if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
-                                        cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
-                                        cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
-                                    }
-                                    if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
-                                        for (int i = 0;i < cartDto.getCartNum();i++) {
-                                            preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
-                                            preGift.append(",");
-                                        }
-                                    }
-                                    break;
-                            }
-                        }
-                    }
-                }
+				//如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
+				QrcodeGift gift = new QrcodeGift();
+				gift.setQrcodeStatus(1);
+				List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
+				if (giftList != null && giftList.size() > 0) {
+					for (QrcodeGift qrcodeGift : giftList) {
+						if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
+							switch (userQrcodeType) {
+								case "1":
+									if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
+										cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
+										cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
+									}
+									if (qrcodeGift.getQrcodePreGiftColor() != null) {
+										for (int i = 0;i < cartDto.getCartNum();i++) {
+											preGift.append(qrcodeGift.getQrcodePreGiftColor());
+											preGift.append(",");
+										}
+									}
+									break;
+								case "2":
+									if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
+										cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
+										cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
+									}
+									if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
+										for (int i = 0;i < cartDto.getCartNum();i++) {
+											preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
+											preGift.append(",");
+										}
+									}
+									break;
+							}
+						}
+					}
+				}
 			}
 
 			//如果购买过订单,则滤芯的价格可按折扣价购买
@@ -535,9 +539,9 @@ public class OrderHandler {
 					}
 				}
 			}
-			
+
 			//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-			if (member.getUserDealers() != null && member.getTemplateId() != null 
+			if (member.getUserDealers() != null && member.getTemplateId() != null
 					&& templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
 				UserGiftDto userGiftDto = new UserGiftDto();
 				userGiftDto.setUserLevel(2);
@@ -553,7 +557,7 @@ public class OrderHandler {
 					}
 				}
 			}
-			
+
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
 				Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
@@ -575,43 +579,43 @@ public class OrderHandler {
 
 		//扫描优惠二维码赠送赠品信息
 		if (preGift != null && !"".equals(preGift.toString())) {
-            String[] giftss = preGift.toString().split(",");
-            ProductColor color = new ProductColor();
-            color.setPage(null);
-            List<ProductColor> colorList = productColorService.selectProductColorList(color);
-            for (int i = 0;i < giftss.length;i++) {
-                boolean cartFlag = false;
-                for (OrderItem item : list) {
-                    //判断是否已经存在该赠品,如果存在则数量加1
-                    if (Integer.parseInt(giftss[i]) == item.getItemColorId() && item.getItemTotal() == 0) {
-                        item.setItemNum(item.getItemNum().intValue() + 1);
-                        cartFlag = true;
-                    }
-                }
-                //如果不存在,则新增订单项
-                if (!cartFlag) {
-                    for (ProductColor productColor : colorList) {
-                        if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
-                            OrderItem orderItem = new OrderItem();
-                            orderItem.setItemNum(1);
-                            orderItem.setItemProductDiscount(0);
-                            orderItem.setItemProductId(productColor.getColorProductId());
-                            orderItem.setItemProductName(productColor.getColorProductName());
-                            orderItem.setItemProductPic(productColor.getColorProductPic());
-                            orderItem.setItemSalesOrderid(order.getSalesOrderid());
-                            orderItem.setItemTotal(0);
-                            orderItem.setItemProductType(productColor.getColorProductType());
-                            orderItem.setItemProductPrice(0);
-                            orderItem.setItemColorId(productColor.getColorId());
-                            list.add(orderItem);
-                        }
-                    }
-                }
-            }
+			String[] giftss = preGift.toString().split(",");
+			ProductColor color = new ProductColor();
+			color.setPage(null);
+			List<ProductColor> colorList = productColorService.selectProductColorList(color);
+			for (int i = 0;i < giftss.length;i++) {
+				boolean cartFlag = false;
+				for (OrderItem item : list) {
+					//判断是否已经存在该赠品,如果存在则数量加1
+					if (Integer.parseInt(giftss[i]) == item.getItemColorId() && item.getItemTotal() == 0) {
+						item.setItemNum(item.getItemNum().intValue() + 1);
+						cartFlag = true;
+					}
+				}
+				//如果不存在,则新增订单项
+				if (!cartFlag) {
+					for (ProductColor productColor : colorList) {
+						if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
+							OrderItem orderItem = new OrderItem();
+							orderItem.setItemNum(1);
+							orderItem.setItemProductDiscount(0);
+							orderItem.setItemProductId(productColor.getColorProductId());
+							orderItem.setItemProductName(productColor.getColorProductName());
+							orderItem.setItemProductPic(productColor.getColorProductPic());
+							orderItem.setItemSalesOrderid(order.getSalesOrderid());
+							orderItem.setItemTotal(0);
+							orderItem.setItemProductType(productColor.getColorProductType());
+							orderItem.setItemProductPrice(0);
+							orderItem.setItemColorId(productColor.getColorId());
+							list.add(orderItem);
+						}
+					}
+				}
+			}
 		}
 
 		//如果模板id等于金牌会模板id,来源是3,则该用户为金牌会员直接下线,直接下线送三年滤芯
-		if (member.getUserDealers() != null && member.getTemplateId() != null && 
+		if (member.getUserDealers() != null && member.getTemplateId() != null &&
 				templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
 			//当userGift不为空时,说明该用户购买的商品有奖励礼品,奖励礼品取第一个产品的,不适用于多个产品有不同奖励礼品的情况
 			if (userGift != null && userGift.getUserGiftId() != null && !"".equals(userGift.getUserGiftId())) {
@@ -630,13 +634,13 @@ public class OrderHandler {
 				list.add(orderItem);
 			}
 		}
-		
+
 		// 准备订单对象
 		order.setSalesOpenid(member.getUserOpenid()); // openid 
 		order.setSalesAmount(total); // 订单金额
-		
+
 		int mustPay=0;
-		
+
 		String couponId=temp.getCouponId();
 		CouponItemDto couponItemDto=new CouponItemDto();
 		CouponItem couponItem=new CouponItem();
@@ -652,7 +656,7 @@ public class OrderHandler {
 			couponItem.setCouponItemUseropenid(couponItemDto.getUseropenid());
 			couponItem.setCouponUseEndDate(couponItemDto.getCouponUseEndDate());
 			couponItem.setCouponUseDate(couponItemDto.getCouponUseDate());
-			
+
 			if(null==couponItemDto || !couponItemDto.getUseropenid().equals(member.getUserOpenid()) || couponItemDto.getCouponUseStatus()!=1){
 				msg.setMessage(ResultInfo.COUPON_INVALID); //优惠券无效
 				return msg;
@@ -661,7 +665,7 @@ public class OrderHandler {
 				msg.setMessage(ResultInfo.COUPON_OUTOFDATE); //优惠券过期
 				return msg;
 			}
-			
+
 			//消费达到指定额度
 			CouponType couponType = couponTypeService.getCouponTypeById(couponItemDto.getCouponId());
 			if(couponType.getCouponConsumeEnough()>total){
@@ -674,7 +678,7 @@ public class OrderHandler {
 			}else if(couponType.getCouponType()==2){
 				total=total*couponType.getCouponReduce()/100;
 			}
-		
+
 		}
 		if(total==0 || total<0){
 			total=0;
@@ -682,7 +686,7 @@ public class OrderHandler {
 		}else{
 			mustPay=total;
 		}
-		
+
 		//获取账户余额,判断是否在可用范围内
 		int balancePayAmount=temp.getBalancePayAmount();
 		if(balancePayAmount>0 && member.getUserIncome()>balancePayAmount){
@@ -691,7 +695,7 @@ public class OrderHandler {
 			msg.setMessage(ResultInfo.NO_ENOUGH_FOR_PAY);
 			return msg;
 		}
-		
+
 		order.setSalesYetAmount(total);
 		order.setSalesRateAmount(0);
 		order.setSalesIntegralNum(temp.getOrderIntegralNum()); // 订单使用积分
@@ -723,7 +727,7 @@ public class OrderHandler {
 			msg.setMessage(ResultInfo.paramFormatError);
 			return msg;
 		}
-		
+
 		boolean updateFlase=false;
 		if (flag && mustPay>0) {
 			// 发起支付
@@ -751,7 +755,7 @@ public class OrderHandler {
 			msg.setMessage(ResultInfo.paramFormatError);
 			return msg;
 		}
-	
+
 		if(updateFlase){
 			//设置订单状态,还有优惠券id
 			order.setSalesStatus(2);
@@ -762,12 +766,12 @@ public class OrderHandler {
 				couponItem.setCouponUseDate(new Date());//添加使用时间
 				int i=couponItemService.updateCouponItemById(couponItem);
 			}
-				
+
 			//更新账户余额
 			if(balancePayAmount>0){
 				member.setUserIncome(-balancePayAmount);
 				memberService.updateUserIncomeByOpenId(member);
-				
+
 				//修改用户购买记录为已购买
 				memberService.updateIsBaughtByOpenid(member.getUserOpenid(), 2);
 				//更新用户绑定状态
@@ -780,7 +784,7 @@ public class OrderHandler {
 				} catch (Exception e) {
 					System.out.println("为用户生成二维码失败!");
 				}
-				
+
 				//现金使用记录
 				CashLog log=new CashLog();
 				log.setCashLogsIntroduction("订单支出");
@@ -791,21 +795,21 @@ public class OrderHandler {
 				log.setCashLogsOrderid(order.getSalesOrderid());
 				log.setCashLogsCreateDate(nowDate);
 				cashLogService.addCashLog(log);
-			
+
 			}
 			rebackServices.loadSingleOrderReward(order);
 			productInfoService.updateProductNumList(order.getSalesOrderid());
-			
+
 		}
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		dto.setOrderId(order.getSalesOrderid());
 		msg.setData(dto);
 		msg.setStatus(true);
-		
+
 		return msg;
 	}
-	
+
 	/**
 	 * 校验订单状态,判断是否支付成功
 	 * @param orderId
@@ -827,7 +831,7 @@ public class OrderHandler {
 		msg.setResultCode(ResultInfo.ERRORCODE);
 		msg.setMessage(NameUtils.getConfig("ERRORINFO"));
 		msg.setStatus(false);
-		
+
 		return msg;
 	}
 
@@ -835,7 +839,7 @@ public class OrderHandler {
 	public void paySuccess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 		request.getRequestDispatcher(NameUtils.getConfig("WECHAT_SHOP_ORDER_PAY_SUCCESS")).forward(request, response);
 	}
-	
+
 	@RequestMapping(value = "/getOrderInfo", method = RequestMethod.POST)
 	@ResponseBody
 	public ResultMsg getOrderInfoByOrderId(
@@ -848,24 +852,24 @@ public class OrderHandler {
 		order.setSalesOrderid(orderId);
 		order.setSalesOpenid(member.getUserOpenid());
 		order = cartService.selectOrderInfoById(order);
-		
+
 		if (order == null || order.getSalesStatus() != 2) {
 			msg.setMessage(ResultInfo.paramFormatError);
 			return msg;
 		}
-		
+
 		msg.setData(order);
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		msg.setStatus(true);
 		return msg;
 	}
-	
+
 	/**
 	 * 校验一个购物车字符串
 	 * @param cartIds 购物车ID字符串
 	 * @return
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	public Integer[] checkCartIdListString(String cartIds) throws Exception {
 		if (cartIds == null) {

+ 5 - 2
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/porduct/ProductHandler.java

@@ -476,11 +476,13 @@ public class ProductHandler {
 
         QrcodeGift gift = new QrcodeGift();
         gift.setQrcodeId(qrcodeId);
-        gift.setQrcodeStatus(1);
+        //gift.setQrcodeStatus(1);
         //获取优惠二维码赠品信息
         List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
         if (giftList == null || giftList.size() == 0) {
             msg.setStatus(false);
+			msg.setResultCode(ResultInfo.ERRORCODE);
+            return msg;
         }
         gift = giftList.get(0);
 
@@ -489,6 +491,8 @@ public class ProductHandler {
         List<ProductColor> colorList = productColorService.selectProductColorList(productColor);
         if (colorList == null || colorList.size() <= 0) {
             msg.setStatus(false);
+			msg.setResultCode(ResultInfo.ERRORCODE);
+			return msg;
         }
         map.put("gift",gift);
         map.put("colorList",colorList);
@@ -536,7 +540,6 @@ public class ProductHandler {
         }
         //查询商品名称信息
         ProductColor color = productColorService.selectProductColorById(gift.getQrcodeColorId());
-        gift.setQrcodeStatus(1);
         gift.setQrcodePreGiftColor(perStr.toString());
         gift.setQrcodeSalesGiftColor(salesStr.toString());
         gift.setQrcodeColorName(color.getColorName());

+ 2 - 1
wateroPF-wechat-web/src/main/resources/iamberry-app-service-config.properties

@@ -1,6 +1,6 @@
 #SMS_USERNAME=aibeiyuan
 #SMS_PASSWORD=aibeiyuan632
-#SMS_TEXT=\u3010\u6BD4\u6BD4\u840C\u3011\u60A8\u7684\u9A8C\u8BC1\u7801\u662F\uFF1A{0}\uFF0C\u5982\u975E\u672C\u4EBA\u64CD\u4F5C\uFF0C\u8BF7\u5FFD\u7565\u672C\u77ED\u4FE1
+#SMS_TEXT=\u3010\u6BD4\u6BD4\u840C\u3011\u60A8\u7684\u9A8C\u8BC1\u7801\u662F\uFF1A{0}\uFF0C\u5982\u975E\u672C\u4EBA\u64CD\u4F5C\uFF0C\u8BF7\u5FFD\u7565\u672C\u77ED\u4FE1z
 #SMS_URL=http://115.29.44.189:8080/sms/smsInterface.do
 SINA_IP_URL=http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip={0}
 APPID=wxe9e992877625202f
@@ -23,3 +23,4 @@ PROBATION_SUCCESS_FIRST_TEXT=\u3010\u7F8E\u56FDwatero\u3011\u5C0A\u656C\u7684\u4
 PROBATION_SUCCESS_SECOND_TEXT=\u3010\u7F8E\u56FDWatero\u3011\u5C0A\u656C\u7684\u4F1A\u5458\u60A8\u597D\uFF01\u60A8\u7684\u8BD5\u7528\u8BA2\u53557\u5929\u540E\u5C06\u5230\u671F\uFF0C\u540C\u65F6\uFF0C\u8FD8\u67092\u76D2\u517B\u751F\u8336\u996E\u5F85\u9886\u53D6\uFF0C\u8BF7\u8FDB\u5165\u5FAE\u4FE1\u516C\u4F17\u53F7\u67E5\u770B\u8BA2\u5355\u3002
 PROBATION_SUCCESS_THIRD_TEXT=\u3010\u7F8E\u56FDWatero\u3011\u5C0A\u656C\u7684\u4F1A\u5458\u60A8\u597D\uFF01\u60A8\u7684\u8BD5\u7528\u8BA2\u53552\u5929\u540E\u5C06\u5230\u671F\uFF0C\u540C\u65F6\uFF0C\u8FD8\u67091L\u7CBE\u7F8E\u91CF\u676F\u5F85\u9886\u53D6\uFF0C\u8BF7\u8FDB\u5165\u5FAE\u4FE1\u516C\u4F17\u53F7\u67E5\u770B\u8BA2\u5355\u3002
 INFORM_SHIPPING=\u3010\u7F8E\u56FDWaterO\u3011\u4EB2\uFF0C\u60A8\u7684\u8BA2\u5355\u5DF2\u53D1\u8D27\u3002\u5173\u6CE8\u201C\u6C34\u65F6\u4EE3WaterO\u201D\u516C\u4F17\u53F7\u53EF\u67E5\u8BE2\u7269\u6D41\u4FE1\u606F
+ORDER_UPDATE_STATUS_TEXT=\u3010\u7F8E\u56FDWaterO\u3011\u6709\u4E00\u4E2A\u8BA2\u5355\u5F85{0}\uFF0C\u8BF7\u767B\u9646\u4E0A\u6D77WaterO\u5FAE\u4FE1\u540E\u53F0\u5904\u7406\u3002

+ 1 - 1
wateroPF-wechat-web/src/main/webapp/WEB-INF/views/admin/product/addProductPrice.jsp

@@ -86,7 +86,7 @@
         </div>
         <div id="sales_div">
             <div class="row cl">
-                <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>赠品:</label>
+                <label class="form-label col-xs-4 col-sm-3">赠品:</label>
                 <div class="formControls col-xs-6 col-sm-6">
                     <ul class="my-ul-list">
 

+ 1 - 1
wateroPF-wechat-web/src/main/webapp/WEB-INF/views/wechat/chanpin_details.html

@@ -65,7 +65,7 @@
 
 		<div class="chanpin-ditails-dic">
 			<ul>
-				<li class="color-list">
+				<li class="color-list" id="product_details" style="display: none;">
 					<button type="button" class="blue chanpin_details" proid="59" colorid="41">蓝色款</button><button type="button" class="red chanpin_details" proid="56" colorid="37">红色款</button><button type="button" class="black chanpin_details" proid="57" colorid="39">黑色款</button>
 				</li>
 				<!-- 产品参数图 -->

+ 7 - 0
wateroPF-wechat-web/src/main/webapp/common/shop/js/page/chanpin_details.js

@@ -194,6 +194,13 @@ function selectProductInfo(productId) {
 				if(dt.data.product.productId == 28) {
 					goodStatus = false
 				}
+
+				if (dt.data.product.productType.typeId == 1 || dt.data.product.productType.typeId == 11 ||
+                    dt.data.product.productType.typeId == 12 || dt.data.product.productType.typeId == 13) {
+					$('#product_details').show();
+				} else {
+                    $('#product_details').hide();
+				}
 				shareOpenid = dt.data.shareOpenid;
 				var imageNote = "<div class='mui-slider-item mui-slider-item-duplicate'><a href='#'><img src='" + dt.data.product.pictureList[0].pictureUrl + "'></a></div>";
 				for(var i = 0; i < dt.data.product.pictureList.length; i += 1) {

+ 0 - 169
wateroPF-wechat-web/wateroPF-wechat-web.iml

@@ -1,169 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="web" name="Web">
-      <configuration>
-        <descriptors>
-          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
-        </descriptors>
-        <webroots>
-          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
-        </webroots>
-        <sourceRoots>
-          <root url="file://$MODULE_DIR$/src/main/java" />
-          <root url="file://$MODULE_DIR$/src/main/resources" />
-        </sourceRoots>
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="wateroPF-common-web" />
-    <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
-    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.2.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-mock:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-lgpl:1.9.12" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
-    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjtools:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
-    <orderEntry type="library" name="Maven: displaytag:displaytag:1.2" level="project" />
-    <orderEntry type="library" name="Maven: jsptags:pager-taglib:2.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
-    <orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.6" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.11.2" level="project" />
-    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib-ext-spring:1.0.2" level="project" />
-    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
-    <orderEntry type="library" name="Maven: com.mortennobel:java-image-scaling:0.8.5" level="project" />
-    <orderEntry type="library" name="Maven: QRCode:QRCode:3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.sogyf:goja-qrcode:0.1.2" level="project" />
-    <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
-    <orderEntry type="library" name="Maven: jexcelapi:jxl:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.antisamy:antisamy:1.4.3" level="project" />
-    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
-    <orderEntry type="library" name="Maven: com.101tec:zkclient:0.3" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:dubbo:2.5.3" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.3.6" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
-    <orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.1.3.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.0.1" level="project" />
-    <orderEntry type="module" module-name="wateroPF-wechat-service" />
-    <orderEntry type="module" module-name="wateroPF-wechat-interface" />
-    <orderEntry type="module" module-name="wateroPF-common-core" />
-    <orderEntry type="module" module-name="wateroPF-common-tool" />
-    <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.2.1" level="project" />
-    <orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1.1" level="project" />
-    <orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1" level="project" />
-    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet.jsp:javax.servlet.jsp-api:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.20" level="project" />
-    <orderEntry type="module-library">
-      <library name="Maven: com.alibaba:jconsole:1.8.0">
-        <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.7.0_55/jre/../lib/jconsole.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library name="Maven: com.alibaba:tools:1.8.0">
-        <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.7.0_55/jre/../lib/tools.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.lowagie:itext:1.3" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
-    <orderEntry type="library" name="Maven: net.jcip:jcip-annotations:1.0" level="project" />
-    <orderEntry type="library" name="Maven: net.minidev:json-smart:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.3.4.O" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.2.2" level="project" />
-    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
-    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
-    <orderEntry type="library" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.22" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.5" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.7.0" level="project" />
-    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
-    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
-    <orderEntry type="library" name="Maven: org.beanshell:bsh-core:2.0b4" level="project" />
-    <orderEntry type="library" name="Maven: jline:jline:0.9.94" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty:3.7.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:0.9.5" level="project" />
-  </component>
-</module>