Browse Source

机器统计页面

liujiankang 7 years ago
parent
commit
88ad6aeef4
28 changed files with 1406 additions and 216 deletions
  1. 316 1
      .gitignore
  2. 4 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java
  3. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java
  4. 1 0
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  5. 28 125
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java
  6. 0 37
      watero-rst-web/src/main/resources/watero-rst-ioc.xml
  7. 5 0
      watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl
  8. 10 1
      watero-rst-web/src/main/webapp/WEB-INF/views/login.ftl
  9. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/device_list.ftl
  10. 35 10
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl
  11. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/employee_list.ftl
  12. 15 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl
  13. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl
  14. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl
  15. 10 10
      wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/machineNumber/MachineNumber.java
  16. 92 0
      wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/machineNumber/WarrantyCard.java
  17. 7 0
      wateroPF-wechat-interface/src/main/java/com/iamberry/wechat/face/machineNumber/MachineNumberService.java
  18. 86 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/machineNumber/MachineNumberServiceImpl.java
  19. 13 6
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MachineNumberMapper.java
  20. 19 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/machineNumberMapper.xml
  21. 6 0
      wateroPF-wechat-web/pom.xml
  22. 26 0
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  23. 199 6
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/qrcode/MachineQrCodeHandler.java
  24. 2 0
      wateroPF-wechat-web/src/main/resources/platform.properties
  25. 3 3
      wateroPF-wechat-web/src/main/webapp/WEB-INF/views/wechat/vip_center.html
  26. 2 2
      wateroPF-wechat-web/src/main/webapp/common/shop/js/page/vip_center.js
  27. 355 0
      wateroPF-wechat-web/src/main/webapp/view/add_machine.html
  28. 152 0
      wateroPF-wechat-web/src/main/webapp/view/warranty_card.html

+ 316 - 1
.gitignore

@@ -4,4 +4,319 @@
 */src/test
 .idea/*
 .classpath
-.project
+.project
+.idea
+watero-wechat-service.iml
+watero-wechat-interface.iml
+watero-common-core.iml
+uiDesigner.xml
+sqldialects.xml
+modules.xml
+Maven__xpp3_xpp3_min_1_1_3_4_O.xml
+Maven__xom_xom_1_2_5.xml
+Maven__xml_apis_xml_apis_ext_1_3_04.xml
+Maven__xml_apis_xml_apis_1_4_01.xml
+Maven__xerces_xercesImpl_2_8_1.xml
+Maven__xalan_xalan_2_7_0.xml
+Maven__User_Agent_Utils_UserAgentUtils_1_2_3.xml
+Maven__ueditor_ueditor_1_1_2.xml
+Maven__stax_stax_api_1_0_1.xml
+Maven__redis_clients_jedis_2_8_1.xml
+Maven__QRCode_QRCode_3_0.xml
+Maven__oro_oro_2_0_8.xml
+Maven__org_springframework_spring_websocket_4_1_3_RELEASE.xml
+Maven__org_springframework_spring_webmvc_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_web_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_tx_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_test_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_orm_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_mock_2_0_8.xml
+Maven__org_springframework_spring_jdbc_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_expression_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_core_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_context_support_4_3_2_RELEASE.xml
+Maven__org_springframework_spring_context_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_beans_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_aspects_4_3_3_RELEASE.xml
+Maven__org_springframework_spring_aop_4_3_3_RELEASE.xml
+Maven__org_slf4j_slf4j_log4j12_1_7_21.xml
+Maven__org_slf4j_slf4j_api_1_7_21.xml
+Maven__org_slf4j_jcl_over_slf4j_1_7_21.xml
+Maven__org_quartz_scheduler_quartz_2_2_1.xml
+Maven__org_owasp_esapi_esapi_2_1_0.xml
+Maven__org_owasp_antisamy_antisamy_1_4_3.xml
+Maven__org_mybatis_mybatis_spring_1_2_2.xml
+Maven__org_mybatis_mybatis_3_2_8.xml
+Maven__org_json_json_20160212.xml
+Maven__org_jboss_netty_netty_3_2_5_Final.xml
+Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml
+Maven__org_javassist_javassist_3_20_0_GA.xml
+Maven__org_hibernate_hibernate_validator_5_2_4_Final.xml
+Maven__org_hibernate_hibernate_validator_5_1_3_Final.xml
+Maven__org_hamcrest_hamcrest_core_1_3.xml
+Maven__org_freemarker_freemarker_2_3_25_incubating.xml
+Maven__org_codehaus_jackson_jackson_mapper_lgpl_1_9_12.xml
+Maven__org_codehaus_jackson_jackson_core_lgpl_1_9_12.xml
+Maven__org_beanshell_bsh_core_2_0b4.xml
+Maven__org_aspectj_aspectjweaver_1_8_9.xml
+Maven__org_aspectj_aspectjtools_1_8_9.xml
+Maven__org_aspectj_aspectjrt_1_8_9.xml
+Maven__org_apache_zookeeper_zookeeper_3_3_1.xml
+Maven__org_apache_xmlgraphics_batik_util_1_7.xml
+Maven__org_apache_xmlgraphics_batik_ext_1_7.xml
+Maven__org_apache_xmlgraphics_batik_css_1_7.xml
+Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml
+Maven__org_apache_velocity_velocity_1_7.xml
+Maven__org_apache_shiro_shiro_web_1_3_2.xml
+Maven__org_apache_shiro_shiro_spring_1_3_2.xml
+Maven__org_apache_shiro_shiro_core_1_3_2.xml
+Maven__org_apache_poi_poi_ooxml_schemas_3_14.xml
+Maven__org_apache_poi_poi_ooxml_3_14.xml
+Maven__org_apache_poi_poi_3_14.xml
+Maven__org_apache_httpcomponents_httpmime_4_3_6.xml
+Maven__org_apache_httpcomponents_httpcore_4_4_5.xml
+Maven__org_apache_httpcomponents_httpclient_4_5_2.xml
+Maven__org_apache_commons_commons_pool2_2_4_2.xml
+Maven__org_apache_commons_commons_lang3_3_4.xml
+Maven__net_sourceforge_nekohtml_nekohtml_1_9_22.xml
+Maven__net_sf_json_lib_json_lib_jdk15_2_2_2.xml
+Maven__net_sf_json_lib_json_lib_ext_spring_1_0_2.xml
+Maven__net_sf_ezmorph_ezmorph_1_0_4.xml
+Maven__net_minidev_json_smart_1_3_1.xml
+Maven__net_jcip_jcip_annotations_1_0.xml
+Maven__mysql_mysql_connector_java_5_1_39.xml
+Maven__log4j_log4j_1_2_17.xml
+Maven__junit_junit_4_12.xml
+Maven__jsptags_pager_taglib_2_0.xml
+Maven__json_json_1_0.xml
+Maven__joda_time_joda_time_2_9_4.xml
+Maven__jline_jline_0_9_94.xml
+Maven__jexcelapi_jxl_2_4_2.xml
+Maven__jdom_jdom_1_0.xml
+Maven__jaxen_jaxen_1_1_6.xml
+Maven__javax_validation_validation_api_1_1_0_Final.xml
+Maven__javax_servlet_jstl_1_2.xml
+Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml
+Maven__javax_servlet_javax_servlet_api_3_1_0.xml
+Maven__io_netty_netty_3_7_0_Final.xml
+Maven__IKAnalyzer_IKAnalyzer2012_1_0.xml
+Maven__fileupload_fileupload_1_3_1.xml
+Maven__dom4j_dom4j_1_6_1.xml
+Maven__displaytag_displaytag_1_2.xml
+Maven__commons_logging_commons_logging_1_2.xml
+Maven__commons_lang_commons_lang_2_6.xml
+Maven__commons_io_commons_io_2_4.xml
+Maven__commons_httpclient_commons_httpclient_3_1.xml
+Maven__commons_fileupload_commons_fileupload_1_3_1.xml
+Maven__commons_digester_commons_digester_2_1.xml
+Maven__commons_configuration_commons_configuration_1_5.xml
+Maven__commons_collections_commons_collections_3_2_2.xml
+Maven__commons_codec_commons_codec_1_10.xml
+Maven__commons_beanutils_commons_beanutils_core_1_7_0.xml
+Maven__commons_beanutils_commons_beanutils_1_9_2.xml
+Maven__com_thoughtworks_xstream_xstream_1_2_1.xml
+Maven__com_nimbusds_nimbus_jose_jwt_4_11_2.xml
+Maven__com_mortennobel_java_image_scaling_0_8_5.xml
+Maven__com_lowagie_itext_1_3.xml
+Maven__com_jhlabs_filters_2_0_235.xml
+Maven__com_jcraft_jsch_0_1_53.xml
+Maven__com_googlecode_json_simple_json_simple_1_1.xml
+Maven__com_google_zxing_javase_3_2_0.xml
+Maven__com_google_zxing_core_3_2_0.xml
+Maven__com_google_guava_guava_16_0_1.xml
+Maven__com_google_code_gson_gson_2_7.xml
+Maven__com_github_virtuald_curvesapi_1_03.xml
+Maven__com_github_sogyf_goja_qrcode_0_1_2.xml
+Maven__com_github_pagehelper_pagehelper_5_0_1.xml
+Maven__com_github_jsqlparser_jsqlparser_1_0.xml
+Maven__com_github_jsqlparser_jsqlparser_0_9_5.xml
+Maven__com_fasterxml_jackson_core_jackson_databind_2_8_3.xml
+Maven__com_fasterxml_jackson_core_jackson_core_2_8_3.xml
+Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_3.xml
+Maven__com_fasterxml_classmate_1_3_1.xml
+Maven__com_auth0_java_jwt_2_2_1.xml
+Maven__com_alibaba_fastjson_1_2_6.xml
+Maven__com_alibaba_dubbo_2_5_3.xml
+Maven__com_alibaba_druid_1_0_20.xml
+Maven__com_101tec_zkclient_0_3.xml
+Maven__codec_codec_1_9.xml
+Maven__cn_jpush_api_jpush_client_3_2_8.xml
+Maven__c3p0_c3p0_0_9_1_1.xml
+Project_Default.xml
+profiles_settings.xml
+encodings.xml
+6494d36d-0540-40de-bb6c-8f817a0a9dc0.xml
+dataSources.xml
+dataSources.local.xml
+codeStyleSettings.xml
+wateroPF_wechat_web_war_exploded.xml
+wateroPF_wechat_web_war.xml
+watero_wechat_web_war_exploded.xml
+watero_wechat_web_war.xml
+watero_rst_web_war_exploded.xml
+watero_rst_web_war.xml
+iamberry_wechat_web_war_exploded.xml
+iamberry_wechat_web_war.xml
+iamberry_app_international_war_exploded.xml
+iamberry_app_international_war.xml
+iamberry_app_api_war_exploded.xml
+iamberry_app_api_war.xml
+.name
+.gitignore
+/watero-wechat-service/watero-wechat-service.iml
+/watero-wechat-interface/watero-wechat-interface.iml
+/watero-common-core/watero-common-core.iml
+/.idea/uiDesigner.xml
+/.idea/sqldialects.xml
+/.idea/modules.xml
+/.idea/libraries/Maven__xpp3_xpp3_min_1_1_3_4_O.xml
+/.idea/libraries/Maven__xom_xom_1_2_5.xml
+/.idea/libraries/Maven__xml_apis_xml_apis_ext_1_3_04.xml
+/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml
+/.idea/libraries/Maven__xerces_xercesImpl_2_8_1.xml
+/.idea/libraries/Maven__xalan_xalan_2_7_0.xml
+/.idea/libraries/Maven__User_Agent_Utils_UserAgentUtils_1_2_3.xml
+/.idea/libraries/Maven__ueditor_ueditor_1_1_2.xml
+/.idea/libraries/Maven__stax_stax_api_1_0_1.xml
+/.idea/libraries/Maven__redis_clients_jedis_2_8_1.xml
+/.idea/libraries/Maven__QRCode_QRCode_3_0.xml
+/.idea/libraries/Maven__oro_oro_2_0_8.xml
+/.idea/libraries/Maven__org_springframework_spring_websocket_4_1_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_web_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_tx_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_test_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_orm_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_mock_2_0_8.xml
+/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_expression_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_core_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_2_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_context_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_beans_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_springframework_spring_aop_4_3_3_RELEASE.xml
+/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_21.xml
+/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_21.xml
+/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_21.xml
+/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_2_1.xml
+/.idea/libraries/Maven__org_owasp_esapi_esapi_2_1_0.xml
+/.idea/libraries/Maven__org_owasp_antisamy_antisamy_1_4_3.xml
+/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_2_2.xml
+/.idea/libraries/Maven__org_mybatis_mybatis_3_2_8.xml
+/.idea/libraries/Maven__org_json_json_20160212.xml
+/.idea/libraries/Maven__org_jboss_netty_netty_3_2_5_Final.xml
+/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml
+/.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml
+/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_2_4_Final.xml
+/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_1_3_Final.xml
+/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
+/.idea/libraries/Maven__org_freemarker_freemarker_2_3_25_incubating.xml
+/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_lgpl_1_9_12.xml
+/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_lgpl_1_9_12.xml
+/.idea/libraries/Maven__org_beanshell_bsh_core_2_0b4.xml
+/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_9.xml
+/.idea/libraries/Maven__org_aspectj_aspectjtools_1_8_9.xml
+/.idea/libraries/Maven__org_aspectj_aspectjrt_1_8_9.xml
+/.idea/libraries/Maven__org_apache_zookeeper_zookeeper_3_3_1.xml
+/.idea/libraries/Maven__org_apache_xmlgraphics_batik_util_1_7.xml
+/.idea/libraries/Maven__org_apache_xmlgraphics_batik_ext_1_7.xml
+/.idea/libraries/Maven__org_apache_xmlgraphics_batik_css_1_7.xml
+/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml
+/.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml
+/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_3_2.xml
+/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_3_2.xml
+/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_3_2.xml
+/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_14.xml
+/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_14.xml
+/.idea/libraries/Maven__org_apache_poi_poi_3_14.xml
+/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_3_6.xml
+/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_5.xml
+/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_2.xml
+/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml
+/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_4.xml
+/.idea/libraries/Maven__net_sourceforge_nekohtml_nekohtml_1_9_22.xml
+/.idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_2_2.xml
+/.idea/libraries/Maven__net_sf_json_lib_json_lib_ext_spring_1_0_2.xml
+/.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_4.xml
+/.idea/libraries/Maven__net_minidev_json_smart_1_3_1.xml
+/.idea/libraries/Maven__net_jcip_jcip_annotations_1_0.xml
+/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml
+/.idea/libraries/Maven__log4j_log4j_1_2_17.xml
+/.idea/libraries/Maven__junit_junit_4_12.xml
+/.idea/libraries/Maven__jsptags_pager_taglib_2_0.xml
+/.idea/libraries/Maven__json_json_1_0.xml
+/.idea/libraries/Maven__joda_time_joda_time_2_9_4.xml
+/.idea/libraries/Maven__jline_jline_0_9_94.xml
+/.idea/libraries/Maven__jexcelapi_jxl_2_4_2.xml
+/.idea/libraries/Maven__jdom_jdom_1_0.xml
+/.idea/libraries/Maven__jaxen_jaxen_1_1_6.xml
+/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml
+/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml
+/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml
+/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml
+/.idea/libraries/Maven__io_netty_netty_3_7_0_Final.xml
+/.idea/libraries/Maven__IKAnalyzer_IKAnalyzer2012_1_0.xml
+/.idea/libraries/Maven__fileupload_fileupload_1_3_1.xml
+/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml
+/.idea/libraries/Maven__displaytag_displaytag_1_2.xml
+/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml
+/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
+/.idea/libraries/Maven__commons_io_commons_io_2_4.xml
+/.idea/libraries/Maven__commons_httpclient_commons_httpclient_3_1.xml
+/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_1.xml
+/.idea/libraries/Maven__commons_digester_commons_digester_2_1.xml
+/.idea/libraries/Maven__commons_configuration_commons_configuration_1_5.xml
+/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
+/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml
+/.idea/libraries/Maven__commons_beanutils_commons_beanutils_core_1_7_0.xml
+/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml
+/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_2_1.xml
+/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_4_11_2.xml
+/.idea/libraries/Maven__com_mortennobel_java_image_scaling_0_8_5.xml
+/.idea/libraries/Maven__com_lowagie_itext_1_3.xml
+/.idea/libraries/Maven__com_jhlabs_filters_2_0_235.xml
+/.idea/libraries/Maven__com_jcraft_jsch_0_1_53.xml
+/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1.xml
+/.idea/libraries/Maven__com_google_zxing_javase_3_2_0.xml
+/.idea/libraries/Maven__com_google_zxing_core_3_2_0.xml
+/.idea/libraries/Maven__com_google_guava_guava_16_0_1.xml
+/.idea/libraries/Maven__com_google_code_gson_gson_2_7.xml
+/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_03.xml
+/.idea/libraries/Maven__com_github_sogyf_goja_qrcode_0_1_2.xml
+/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_0_1.xml
+/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml
+/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_0_9_5.xml
+/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_3.xml
+/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_3.xml
+/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_3.xml
+/.idea/libraries/Maven__com_fasterxml_classmate_1_3_1.xml
+/.idea/libraries/Maven__com_auth0_java_jwt_2_2_1.xml
+/.idea/libraries/Maven__com_alibaba_fastjson_1_2_6.xml
+/.idea/libraries/Maven__com_alibaba_dubbo_2_5_3.xml
+/.idea/libraries/Maven__com_alibaba_druid_1_0_20.xml
+/.idea/libraries/Maven__com_101tec_zkclient_0_3.xml
+/.idea/libraries/Maven__codec_codec_1_9.xml
+/.idea/libraries/Maven__cn_jpush_api_jpush_client_3_2_8.xml
+/.idea/libraries/Maven__c3p0_c3p0_0_9_1_1.xml
+/.idea/inspectionProfiles/Project_Default.xml
+/.idea/inspectionProfiles/profiles_settings.xml
+/.idea/encodings.xml
+/.idea/dataSources/6494d36d-0540-40de-bb6c-8f817a0a9dc0.xml
+/.idea/dataSources.xml
+/.idea/dataSources.local.xml
+/.idea/copyright/profiles_settings.xml
+/.idea/codeStyleSettings.xml
+/.idea/artifacts/wateroPF_wechat_web_war_exploded.xml
+/.idea/artifacts/wateroPF_wechat_web_war.xml
+/.idea/artifacts/watero_wechat_web_war_exploded.xml
+/.idea/artifacts/watero_wechat_web_war.xml
+/.idea/artifacts/watero_rst_web_war_exploded.xml
+/.idea/artifacts/watero_rst_web_war.xml
+/.idea/artifacts/iamberry_wechat_web_war_exploded.xml
+/.idea/artifacts/iamberry_wechat_web_war.xml
+/.idea/artifacts/iamberry_app_international_war_exploded.xml
+/.idea/artifacts/iamberry_app_international_war.xml
+/.idea/artifacts/iamberry_app_api_war_exploded.xml
+/.idea/artifacts/iamberry_app_api_war.xml
+/.idea/.name

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

@@ -4,6 +4,7 @@ import com.iamberry.rst.core.order.Order;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineStatistics;
@@ -32,6 +33,9 @@ public interface MachineService {
 
     List<PtsMachine> listPrintOrder(PtsMachine ptsMachine);
 
+    //分页查询机器打印列表
+    PagedResult<PtsMachine> getPrintOrderList(int pageNO, int pageSize, PtsMachine ptsMachine, boolean isTotalNum);
+
     //获取单个机器生产流程日志
     List<PtsMachineLogs> listMachineLogs(Integer machineId);
 

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

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.iamberry.rst.core.order.Order;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineStatistics;
@@ -59,6 +60,13 @@ public class MachineServiceImpl implements MachineService {
     }
 
     @Override
+    public PagedResult<PtsMachine> getPrintOrderList(int pageNO, int pageSize, PtsMachine ptsMachine, boolean isTotalNum){
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        List<PtsMachine> list = machineMapper.listMachine(ptsMachine);
+        return PageUtil.getPage(list);
+    }
+
+    @Override
     public List<PtsMachineLogs> listMachineLogs(Integer machineId) {
         return machineMapper.listMachineLogs(machineId);
     }

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

@@ -2,6 +2,7 @@ package com.iamberry.rst.util;
 
 import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.service.pts.mapper.ProduceMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import javax.print.DocFlavor;
 import java.util.LinkedList;

+ 28 - 125
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java

@@ -4,6 +4,7 @@ import com.iamberry.rst.core.order.Order;
 import com.iamberry.rst.core.order.RentType;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.ProduceProcess;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
@@ -36,9 +37,6 @@ public class AdminMachineController {
 
     @Autowired
     private MachineService machineService;
-
-    @Autowired
-    private ProduceService produceService;
     /**
      * 查询机器列表
      * @author LJK
@@ -135,14 +133,37 @@ public class AdminMachineController {
      */
     @RequiresPermissions("machine:select_all:machine")
     @RequestMapping("/_machine_print_list")
-    public ModelAndView listPrintMachine(PtsMachine ptsMachine){
+    public ModelAndView listPrintMachine(HttpServletRequest request,PtsMachine ptsMachine,
+                                        @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){
         ModelAndView mv = new ModelAndView("pts/machine/machine_print_List");
-        List<PtsMachine> machineList = machineService.listPrintOrder(ptsMachine);
+        mv.addObject("machineIsPrint",ptsMachine.getMachineIsPrint() == null?"1":ptsMachine.getMachineIsPrint());
+
+        StringBuilder sb = new StringBuilder("/admin/machine/_machine_print_list?pageSize=" + pageSize);
+
+        if(ptsMachine == null ||  ptsMachine.getMachineIsPrint() == null || ptsMachine.getMachineIsPrint() == 1){ //未打印
+            List<PtsMachine> machineList = machineService.listPrintOrder(ptsMachine);
+            mv.addObject("machineList",machineList);
+        }else{  //已打印
+            PagedResult<PtsMachine> pagedResult = machineService.getPrintOrderList(pageNO, pageSize, ptsMachine, totalNum == 0);
+            if(totalNum != 0) {
+                pagedResult.setTotal(totalNum);
+                pagedResult.setPages((int) Math.ceil((double)totalNum/pageSize));
+            }
+            sb.append("&machineIsPrint=");
+            if(ptsMachine.getMachineIsPrint() != null && ptsMachine.getMachineIsPrint() == 2){
+                sb.append(ptsMachine.getMachineIsPrint());
+            }
+            sb.append("&totalNum=");
+            sb.append(totalNum == 0 ? pagedResult.getTotal() : totalNum);
+            sb.append("&pageNO=");
+            mv.addObject("page", pagedResult);
+            mv.addObject("url", sb.toString());
+        }
         //查询最新一条机器id
         Integer machineId = machineService.maxMachineId();
         mv.addObject("machineId",machineId);
-        mv.addObject("machineIsPrint",ptsMachine.getMachineIsPrint() == null?"1":ptsMachine.getMachineIsPrint());
-        mv.addObject("machineList", machineList);
         return mv;
     }
 
@@ -197,122 +218,4 @@ public class AdminMachineController {
         String[] a = s.split(",");
         return machineService.batchUpdateMachineIsPring(a);
     }
-
-    /**
-     * 查询机器打印列表
-     * @author LJK
-     * @date 2017年8月31日16:08:15
-     * @return
-     */
-    @RequiresPermissions("machine:abnormality:statistics")
-    @RequestMapping("/_produced_abnormality_statistics")
-    public ModelAndView producedAbnormalityStatistics(HttpServletRequest request,PtsMachine ptsMachine){
-        ModelAndView mv = new ModelAndView("pts/machine/producedAbnormalityStatistics");
-        String machineType = request.getParameter("machineType");//1.净水机 2.冲奶机
-        if(machineType == null || machineType.equals("")){
-            machineType = "1";
-        }
-        mv.addObject("machineType",machineType);
-        PtsMachineStatistics ptsMachineStatistics = new PtsMachineStatistics();
-        Calendar date = Calendar.getInstance();
-        String year = String.valueOf(date.get(Calendar.YEAR));//年
-        ptsMachineStatistics.setYear(year);
-        ptsMachineStatistics.setMachineType(Integer.valueOf(machineType));
-        //查询1-12月每月生产机器数
-       List<PtsMachineStatistics> ptsMachineStatisticsList = machineService.monthStatistics(ptsMachineStatistics);
-       if(ptsMachineStatisticsList.size() > 0){
-           StringBuffer yearBf = new StringBuffer();
-           for(int i=0;i< ptsMachineStatisticsList.size();i++){
-               yearBf.append(ptsMachineStatisticsList.get(i).getNum().toString()+",");
-           }
-           String yearString = yearBf.toString();
-           mv.addObject("years", "["+yearString.substring(0,yearString.length()-1)+"]");
-       }
-
-       //查询最近七天生产机器
-        List<PtsMachineStatistics> dayList = machineService.dayStatistics(ptsMachineStatistics);
-        if(dayList.size() > 0){
-            StringBuffer dayBf = new StringBuffer();
-            StringBuffer dateBf = new StringBuffer();
-            for(int i=0;i< dayList.size();i++){
-                dayBf.append(dayList.get(i).getNum().toString()+",");
-                dateBf.append(dayList.get(i).getDate()+",");
-            }
-            String dayString = dayBf.toString();
-            String monthDayString = dateBf.toString();
-            mv.addObject("days", "["+dayString.substring(0,dayString.length()-1)+"]");
-            mv.addObject("monthDay", "["+monthDayString.substring(0,monthDayString.length()-1)+"]");
-        }
-
-        /*机器总数及流程异常数*/
-        PtsMachineStatistics numbers = machineService.flowAbnormality(ptsMachineStatistics);
-        /*机器总数*/
-        mv.addObject("machineNum", numbers.getMachineCount());
-        /*机器异常总数*/
-        mv.addObject("machineAbnormality", numbers.getMachineAbnormality());
-        /*流程异常百分比*/
-        double percentage = (double)numbers.getMachineAbnormality() / (double)numbers.getMachineCount()*100;
-        NumberFormat nf=new DecimalFormat( "0.0 ");
-        percentage = Double.parseDouble(nf.format(percentage));
-        mv.addObject("abnormalityPercentage", percentage);
-        /*正常百分比*/
-        double normalPercentage = Double.parseDouble(nf.format(100.0 - percentage));
-        mv.addObject("normalPercentage",normalPercentage);
-        /*根据机器类型查询机器所有工序*/
-        ProduceProcess produceProcess = new ProduceProcess();
-        produceProcess.setProduceId(machineType.equals("1")? 1:2);
-        List<ProduceProcess> processList = produceService.listProduceProcess(produceProcess);
-        mv.addObject("processList",processList);
-        //查询第一条的工序值 默认选择第一条工序
-        List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(processList.get(0).getProcessId());
-        if(nodeCountList.size() > 0){
-            JSONObject json = new JSONObject();
-            StringBuffer nodeBf = new StringBuffer();
-            StringBuffer desBf = new StringBuffer();
-            for(int i=0;i< nodeCountList.size();i++){
-                nodeBf.append(nodeCountList.get(i).getNum().toString()+",");
-                desBf.append("\""+nodeCountList.get(i).getNodeDes()+"\"" + ",");
-
-            }
-            String nodeString = nodeBf.toString();
-            String desString = desBf.toString();
-            mv.addObject("nodeString", "["+nodeString.substring(0,nodeString.length()-1)+"]");
-            mv.addObject("desString", "["+desString.substring(0,desString.length()-1)+"]");
-        }
-
-        return mv;
-    }
-
-    /**
-     * 根据工序id统计选项数量
-     * @author LJK
-     * @date 2017年8月31日16:08:15
-     * @return
-     */
-    @RequiresPermissions("machine:abnormality:statistics")
-    @ResponseBody
-    @RequestMapping("/_node_normal")
-    public ModelMap nodeNormal(HttpServletRequest request){
-        String processId = request.getParameter("processId");//工序id
-        ModelMap mm = new ModelMap();
-        if(processId == null || processId.equals("")){
-            mm.put("returnCode",500);
-            return mm;
-        }
-        List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(Integer.valueOf(processId));
-        if(nodeCountList.size() > 0){
-            StringBuffer nodeBf = new StringBuffer();
-            StringBuffer desBf = new StringBuffer();
-            for(int i=0;i< nodeCountList.size();i++){
-                nodeBf.append(nodeCountList.get(i).getNum().toString()+",");
-                desBf.append("\""+nodeCountList.get(i).getNodeDes()+"\"" + ",");
-            }
-            String nodeString = nodeBf.toString();
-            String desString = desBf.toString();
-            mm.put("returnCode",200);
-            mm.put("nodeString","["+nodeString.substring(0,nodeString.length()-1)+"]");
-            mm.put("desString","["+desString.substring(0,desString.length()-1)+"]");
-        }
-        return mm;
-    }
 }

+ 0 - 37
watero-rst-web/src/main/resources/watero-rst-ioc.xml

@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xmlns:context="http://www.springframework.org/schema/context"
-	default-autowire="byName"
-	default-lazy-init="true"
-    xmlns:task="http://www.springframework.org/schema/task"
-	xmlns:aop="http://www.springframework.org/schema/aop"
-	xsi:schemaLocation=
-		"http://www.springframework.org/schema/aop
-		http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
-		http://www.springframework.org/schema/beans
-		http://www.springframework.org/schema/beans/spring-beans.xsd
-		http://www.springframework.org/schema/task  
-		http://www.springframework.org/schema/task/spring-task-4.1.xsd
-		http://www.springframework.org/schema/context
-		http://www.springframework.org/schema/context/spring-context-4.1.xsd">
-		
-	<!-- 配置自动扫描的包:不扫描控制器和异常处理 -->
-	<context:component-scan base-package="com.iamberry">
-		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
-		<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
-	</context:component-scan>
-	
-	<!-- 使用CGLIB动态代理 -->
-    <aop:aspectj-autoproxy proxy-target-class="true"/>
-
-	<!-- 开启注解启动定时器 -->
-    <task:annotation-driven/>
-
-	<!-- DataSource -->
-	<import resource="classpath:watero-rst-db.xml"/>
-
-	<!-- Shiro -->
-	<import resource="classpath:watero-web-shiro.xml"/>
-
-</beans>

+ 5 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl

@@ -28,9 +28,14 @@
         .acrossTab li.active{color:#fff;}
     </style>
     <title>Watero-RST 1.0</title>
+    <script language="JavaScript" type="text/javascript">
+        /*用于login页面判断是否有父级页面,如果有就强制跳转*/
+        var PARENT_IS_LOGIN = 1;
+    </script>
 </head>
 <body>
 <header class="navbar-wrapper">
+    <input type="hidden" id="parent_is_login" value="1" placeholder="用于判断是否存在父级页面!">
     <div class="navbar navbar-fixed-top">
         <div class="container-fluid cl"> <a class="logo navbar-logo f-l mr-10 hidden-xs" href="#"><img src="${path}/common/images/index/admin-login.png" style="height: 44px"/></a> <a class="logo navbar-logo-m f-l mr-10 visible-xs" href="#">Watero-RST</a>
             <span class="logo navbar-slogan f-l mr-10 hidden-xs">租赁服务跟踪系统v1.0</span>

+ 10 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/login.ftl

@@ -19,8 +19,17 @@
     <script>DD_belatedPNG.fix('*');</script>
     <![endif]-->
     <title>后台登录 - Watero RST</title>
-    <script type="text/javascript">
+    <script language="JavaScript" type="text/javascript">
         var root_path = "${path}";
+
+        /*用于判断是否有父级页面,如果有就强制跳转*/
+        function myfun(){
+            var ifmObj = window.parent.PARENT_IS_LOGIN;
+            if(ifmObj != null && ifmObj != "" && typeof(ifmObj) !="undefined" && ifmObj != undefined && ifmObj == 1){
+                parent.location.href = "${path}/_login";
+            }
+        }
+        window.onload = myfun;
     </script>
 </head>
 <body>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/device_list.ftl

@@ -88,9 +88,9 @@
                            onclick="edit_detail('${path}/admin/equipment/_update_device?deviceId=${device.deviceId!}');">
                             <i class="Hui-iconfont">&#xe6df;</i>
                         </a>
-                        <a style="text-decoration:none" href="javascript:;" title="查看"
+                        <a style="text-decoration:none" href="javascript:;" title="查看作用工序"
                            onclick="edit_process('${path}/admin/equipment/_update_process?deviceId=${device.deviceId!}');">
-                            <i class="Hui-iconfont">&#xe665;</i>
+                            <i class="Hui-iconfont">&#xe70c;</i>
                         </a>
                     </td>
                 </tr>

+ 35 - 10
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl

@@ -56,7 +56,7 @@
         }
 
         .point-blue {
-            background-color: #1c87bf;
+            background-color: #1c87bf !important;
         }
 
         .point-green {
@@ -79,10 +79,12 @@
             width: 90% !important;
             margin: 0 auto;
             border: 1px solid rgba(0,0,0,.1);
-            padding-bottom: 20px;
+
         }
+
         .content article {
             position: relative;
+            padding-bottom: 20px;
         }
         .content article > h3 {
             width: 100%;
@@ -90,12 +92,13 @@
             font-size: 1.4em;
             color: #fff;
             padding: 10px 0 20px;
-            background-color: #32a3d8;
+            background-color: #32a3d8 !important;
             margin: 0 0 10px 0;
         }
         .content article section {
             padding: 10px 0 10px;
             position: relative;
+            background-color: transparent !important;
         }
         .content article section:before {
             content: "";
@@ -115,6 +118,7 @@
             position: absolute;
             text-align: right;
             padding-left: 10px;
+            background-color: transparent !important;
         }
         .content article section time > span {
             display: block;margin-right: 10px;
@@ -123,6 +127,7 @@
             color: #3a3a38;
             margin-left: 55%;
             min-height: 50px;
+            background-color: transparent;
         }
         .content article section aside > span{
             display: block;
@@ -136,12 +141,15 @@
         }
 
         /*设置Select样式*/
-        select{border: 1px solid rgba(0,0,0,.1);padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;margin-right: 10px;width: 85px;}
+        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
         .add-title-left{position: absolute;right: 0;top: 15%;}
         .add-title-right{position: absolute;left: 55%;top:33%;}
         .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 5px 0 5px 0;}
         .list-main{list-style-type: none;margin: 0;padding: 10px;overflow-x: scroll;white-space: nowrap;}
         .list-main>li{display: table-cell;min-width: 500px;position: relative;width: 500px;margin-right: 20px;}
+        .list-main >li :hover{
+            background: #f0f0f0;
+        }
     </style>
 <#include "/base/list_base.ftl">
 </head>
@@ -149,7 +157,7 @@
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
     <span class="c-gray en">&gt;</span> PST管理
     <span class="c-gray en">&gt;</span> 设备列表
-    <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;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
 </nav>
 <div><input type="hidden" value="${deviceId!}" id="deviceId"></div>
@@ -356,6 +364,8 @@
         </div>
     </li>-->
 </ul>
+
+<div id="produceData"></div>
 <script type="text/javascript">
 
     $(function(){
@@ -399,19 +409,21 @@
                                     var employee_list = this;
                                     employee_option += '<option value="' + employee_list.employeeId + '">' + employee_list.employeeName + '</option>';
                                 });
-                                tb_user = '<select id="user' + id_num + '" process="' + this_process.processId + '" onchange="update_process(this,1)">' + employee_option + '</select>&nbsp;&nbsp;&nbsp;&nbsp;';
+                                tb_user = '<select id="user' + id_num + '" process="' + this_process.processId + '" preVal=""  onchange="update_process(this,1)">' + employee_option + '</select>&nbsp;&nbsp;&nbsp;&nbsp;';
                             } else {
                                 var employee_option = '';
+                                var preVal = "";
                                 $.each(employeeList, function(n,nobj){
                                     var employee_list = this;
                                     if (employee_list.employeeId == this_process.employeeId) {
+                                        preVal = employee_list.employeeId;
                                         employee_option += '<option value="' + employee_list.employeeId + '" selected>' + employee_list.employeeName + '</option>';
                                     } else {
                                         employee_option += '<option value="' + employee_list.employeeId + '">' + employee_list.employeeName + '</option>';
                                     }
 
                                 });
-                                tb_user = '<select id="user' + id_num + '" process="' + this_process.processId + '" onchange="update_process(this,1)">' + employee_option + '</select>';
+                                tb_user = '<select id="user' + id_num + '" process="' + this_process.processId + '" preVal="'+ preVal +'" onchange="update_process(this,1)">' + employee_option + '</select>';
                             }
                             if (this_process.deviceName == null || this_process.deviceName == undefined) {
                                 var device_option = '<option value="">添加打卡设备</option>';
@@ -419,18 +431,20 @@
                                     var device_list = this;
                                     device_option += '<option value="' + device_list.deviceId + '">' + device_list.deviceName + '</option>';
                                 });
-                                tb_device = '<select id="device' + id_num + '" process="' + this_process.processId + '" onchange="update_process(this,2)">' + device_option + '</select>';
+                                tb_device = '<select id="device' + id_num + '" process="' + this_process.processId + '" preVal="" onchange="update_process(this,2)">' + device_option + '</select>';
                             } else {
                                 var device_option = '';
+                                var preVal = "";
                                 $.each(deviceList, function(n,nobj){
                                     var device_list = this;
                                     if (this_process.driveId == device_list.deviceId) {
+                                        preVal = device_list.deviceId
                                         device_option += '<option value="' + device_list.deviceId + '" selected>' + device_list.deviceName + '</option>';
                                     } else {
                                         device_option += '<option value="' + device_list.deviceId + '">' + device_list.deviceName + '</option>';
                                     }
                                 });
-                                tb_device = '<select id="device' + id_num + '" process="' + this_process.processId + '" onchange="update_process(this,2)">' + device_option + '</select>';
+                                tb_device = '<select id="device' + id_num + '" process="' + this_process.processId + '" preVal="'+ preVal +'" onchange="update_process(this,2)">' + device_option + '</select>';
                             }
                             if (j % 2 == 0) {
                                 process += '<section>'
@@ -474,6 +488,12 @@
         });
     });
 
+    $(function () {
+        $(".produceData").change(function(){
+            alert($(this).val());
+        })
+    })
+
     function update_process(obj,num) {
         var processId = obj.getAttribute("process");
         var id = obj.getAttribute("id");
@@ -501,13 +521,18 @@
                         success: function(dt){
                             if (dt.returnCode == 200) {
                                 layer.msg('恭喜您,修改成功!',{icon: 1,time:1000});
+                                var preVal = $(obj).val();
+                                $(obj).attr("preVal",preVal);
                             } else {
                                 layer.msg('对不起,修改失败!',{icon: 5,time:1000});
+                                var preVal = $(obj).attr("preVal");
+                                $(obj).val(preVal);
                             }
                         }
                     })
                 }, function() {
-                    location.reload();
+                    var preVal = $(obj).attr("preVal");
+                    $(obj).val(preVal);
                 }
         );
     }

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/employee_list.ftl

@@ -85,9 +85,9 @@
                                 <a style="text-decoration:none" href="javascript:void(0);" title="编辑" onclick="admin_update_employee(${employee.employeeId!});">
                                     <i class="Hui-iconfont">&#xe6df;</i>
                                 </a>
-                                <a style="text-decoration:none" href="javascript:;" title="查看"
+                                <a style="text-decoration:none" href="javascript:;" title="查看作用工序"
                                    onclick="edit_process('${path}/admin/equipment/_update_process?deviceId=0');">
-                                    <i class="Hui-iconfont">&#xe665;</i>
+                                    <i class="Hui-iconfont">&#xe70c;</i>
                                 </a>
                             </td>
                         </tr>

+ 15 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -32,11 +32,11 @@
                             <span id="havePrint" onclick="selectIsPrint(2);" class="returnOrderEtc">已打印</span>
                         </div>
                     </div>
-                <input class="my-input" type="hidden" id="machineIsPrint" name="machineIsPrint"/>
-                    <input  class="my-input" type="text" value="每个二维码打印数量:" readonly="readonly" style="border: 0;margin-top: 8px;margin-right: 0"/>
+                <input class="my-input" type="hidden" id="machineIsPrint" name="machineIsPrint" />
+                <input  class="my-input" type="text" value="每个二维码打印数量:" readonly="readonly" style="border: 0;margin-top: 8px;margin-right: 0"/>
                 <input class="my-input" type="text" id="settingNumber" name="printNumber" value="3" placeholder="打印数量" style="margin-top: 10px;"/>
                 <button type="button" class="my-btn-search" onclick="printList();" style="cursor:pointer; margin-right: 50px;margin-top: 10px;">打印</button>
-                    <button id="updatePrintId" type="button" class="my-btn-search" onclick="batchUpdatePring();" style="cursor:pointer; margin-right: 50px;margin-top: 10px;">修改为已打印</button>
+                <button id="updatePrintId" type="button" class="my-btn-search" onclick="batchUpdatePring();" style="cursor:pointer; margin-right: 50px;margin-top: 10px;">修改为已打印</button>
 			</form>
 		</div>
 		<div class="mt-2" style="margin: 20px;">
@@ -49,6 +49,11 @@
 				</tr>
 				</thead>
 				<tbody id="listid">
+                    <#if machineIsPrint == 1>
+                        <#assign machineList = machineList />
+                    <#else >
+                        <#assign machineList = page.dataList />
+                    </#if>
 					<#list machineList as list>
 						<tr class="text-c" id="${list.machineBarcode }">
                             <td width="2">
@@ -64,6 +69,13 @@
 					</#list>
 				</tbody>
 			</table>
+
+            <#if machineIsPrint == 2>
+                <tfoot>
+                    <div style="width: 60%;margin: 0 auto;"><#include "/base/page_util.ftl"></div>
+                </tfoot>
+            </#if>
+
 			<input type="hidden" value="${machineId!''}" name="machineId" id="machineId">
             <input type="hidden" value="" name="codeId" id="codeId">
             <div style="position: absolute;top: 80px;height: 23px;display:none;" id="bcTarget" class="barcodeImg"></div>

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

@@ -40,8 +40,8 @@
     <form class="form form-horizontal" id="form-admin-addProduce">
         <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
             <div class="my-title">产品信息</div>
-            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位中文、英文组合" required   maxlength="20" minlength="2"/> </div>
-            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位中文、英文组合" required  maxlength="100" minlength="2"/> </div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位中文、英文、数字组合" required   maxlength="20" minlength="2"/> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位中文、英文、数字组合" required  maxlength="100" minlength="2"/> </div>
             <div class="input-box"><span class="input-dic">产品类型</span>
                 <label><input type="radio" name="produceType" value="1" checked>净水机</label>
                 <label><input type="radio" name="produceType" value="2">冲奶机</label>
@@ -64,7 +64,7 @@
                         <label><input type="radio" name="processType_p1" value="2">修理工序</label>
                         <button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>
                     </div>
-                    <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文组合" required   maxlength="20" minlength="2"/> </div>
+                    <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文、数字组合" required   maxlength="20" minlength="2"/> </div>
                     <div class="input-box"><span class="input-dic">节点操作</span>
                         <ul class="add-list oneTheNode" >
                             <li class="nodeList">
@@ -220,7 +220,7 @@
                 + '<label><input type="radio" name="processType_p'+ processNumber +'" value="2">修理工序</label>'
                 + '<button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>'
                 + '</div>'
-                + '<div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文组合"  required   maxlength="20"/> </div>'
+                + '<div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文、数字组合"  required   maxlength="20"/> </div>'
                 + '<div class="input-box"><span class="input-dic">节点操作</span>'
                 + '<ul class="add-list oneTheNode">'
                 + '<li class="nodeList">'

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

@@ -38,8 +38,8 @@
         <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
             <div class="my-title">产品信息</div>
             <input type="hidden" name="produceId" value="${produce.produceId!}">
-            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="${produce.produceName!}" placeholder="请输入产品名称,2-20位中文、英文组合" maxlength="20"  required /> </div>
-            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="${produce.produceRemake!}" placeholder="请输入产品描述,2-100位中文、英文组合" maxlength="100"  required /> </div>
+            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="${produce.produceName!}" placeholder="请输入产品名称,2-20位中文、英文、数字组合" maxlength="20"  required /> </div>
+            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="${produce.produceRemake!}" placeholder="请输入产品描述,2-100位中文、英文、数字组合" maxlength="100"  required /> </div>
             <div class="input-box"><span class="input-dic">产品类型</span>
                 <label><input type="radio" name="produceType" value="1" <#if produce.produceType == 1>checked</#if>>净水机</label>
                 <label><input type="radio" name="produceType" value="2" <#if produce.produceType == 2>checked</#if>>冲奶机</label>
@@ -62,7 +62,7 @@
                             <label><input type="radio" name="processType_p${process_index + 1}" value="2" <#if process.processType == 2>checked</#if>>修理工序</label>
                             <button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>
                         </div>
-                        <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="${process.processName!}" placeholder="请输入节点名称,2-20位中文、英文组合" maxlength="20" required/> </div>
+                        <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="${process.processName!}" placeholder="请输入节点名称,2-20位中文、英文、数字组合" maxlength="20" required/> </div>
                         <div class="input-box"><span class="input-dic">节点操作</span>
                             <ul class="add-list oneTheNode" >
                                 <#list process.nodes as nodes>
@@ -243,7 +243,7 @@
                 + '<label><input type="radio" name="processType_p'+ processNumber +'" value="2">修理工序</label>'
                 + '<button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>'
                 + '</div>'
-                + '<div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文组合" maxlength="20"  required/> </div>'
+                + '<div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位中文、英文、数字组合" maxlength="20"  required/> </div>'
                 + '<div class="input-box"><span class="input-dic">节点操作</span>'
                 + '<ul class="add-list oneTheNode">'
                 + '<li class="nodeList">'

+ 10 - 10
wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/machineNumber/MachineNumber.java

@@ -12,19 +12,19 @@ import java.util.Date;
  */
 public class MachineNumber implements Serializable {
     private static final long serialVersionUID = 8495948690542817004L;
-    private Integer numberId;
-    private String numberOpenId;
-    private String numberQrcode;
-    private String numberBarcode;
-    private String numberBatch;
+    private Integer numberId;                   //id
+    private String numberOpenId;                //openId
+    private String numberQrcode;                //二维码
+    private String numberBarcode;               //条形码
+    private String numberBatch;                 //批次
 
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
-    private Date numberSalesTime;
-    private Integer numberStatus;
-    private Date numberCreateTime;
-    private Date numberSubTime;
-    private Integer numberIsPrint;
+    private Date numberSalesTime;               //购买日期
+    private Integer numberStatus;               //状态
+    private Date numberCreateTime;              //创建时间
+    private Date numberSubTime;                 //关注时间
+    private Integer numberIsPrint;              //是否打印
     private PageBean page = new PageBean();		//分页
 
     public PageBean getPage() {

+ 92 - 0
wateroPF-common-core/src/main/java/com/iamberry/wechat/core/entity/machineNumber/WarrantyCard.java

@@ -0,0 +1,92 @@
+package com.iamberry.wechat.core.entity.machineNumber;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 质保卡实体类
+ * Created by liuzhiwei on 2017/9/12.
+ */
+public class WarrantyCard implements Serializable {
+
+    private static final long serialVersionUID = -1282484163952785913L;
+    private Integer cardId;     //id
+
+    private String cardBarcode; //质保卡条形码
+
+    private String cardName;    //质保卡名称
+
+    private Date cardSaleTime;  //购买时间
+
+    private Date cardRenewTime; //换新截止时间
+
+    private Date cardEndTime;   //质保截止时间
+
+    private String cardTel;     //手机号码
+
+    private String cardDes;     //备注
+
+    public String getCardBarcode() {
+        return cardBarcode;
+    }
+
+    public void setCardBarcode(String cardBarcode) {
+        this.cardBarcode = cardBarcode;
+    }
+
+    public Integer getCardId() {
+        return cardId;
+    }
+
+    public void setCardId(Integer cardId) {
+        this.cardId = cardId;
+    }
+
+    public String getCardName() {
+        return cardName;
+    }
+
+    public void setCardName(String cardName) {
+        this.cardName = cardName;
+    }
+
+    public Date getCardSaleTime() {
+        return cardSaleTime;
+    }
+
+    public void setCardSaleTime(Date cardSaleTime) {
+        this.cardSaleTime = cardSaleTime;
+    }
+
+    public Date getCardRenewTime() {
+        return cardRenewTime;
+    }
+
+    public void setCardRenewTime(Date cardRenewTime) {
+        this.cardRenewTime = cardRenewTime;
+    }
+
+    public Date getCardEndTime() {
+        return cardEndTime;
+    }
+
+    public void setCardEndTime(Date cardEndTime) {
+        this.cardEndTime = cardEndTime;
+    }
+
+    public String getCardTel() {
+        return cardTel;
+    }
+
+    public void setCardTel(String cardTel) {
+        this.cardTel = cardTel;
+    }
+
+    public String getCardDes() {
+        return cardDes;
+    }
+
+    public void setCardDes(String cardDes) {
+        this.cardDes = cardDes;
+    }
+}

+ 7 - 0
wateroPF-wechat-interface/src/main/java/com/iamberry/wechat/face/machineNumber/MachineNumberService.java

@@ -101,4 +101,11 @@ public interface MachineNumberService {
      * @return
      */
     Integer addMachineNumberAndUser(MachineNumber machineNumber);
+
+    /**
+     * 批量添加机器编号信息
+     * @param list
+     * @return
+     */
+    boolean addMachineNumberList(List<MachineNumber> list, String openid, Member member);
 }

+ 86 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/machineNumber/MachineNumberServiceImpl.java

@@ -9,12 +9,16 @@ import com.iamberry.wechat.core.entity.machineNumber.MachineNumberLogs;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
+import com.iamberry.wechat.core.entity.wx.QRCJson;
 import com.iamberry.wechat.face.machineNumber.MachineNumberService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.service.cart.CartServiceImpl;
 import com.iamberry.wechat.service.cart.dao.CartDao;
 import com.iamberry.wechat.service.mapper.MachineNumberMapper;
+import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
+import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.tools.WeixinUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -136,4 +140,86 @@ public class MachineNumberServiceImpl implements MachineNumberService{
     public Integer addMachineNumberAndUser(MachineNumber machineNumber) {
         return machineNumberMapper.addMachineNumberAndUser(machineNumber);
     }
+
+    @Override
+    public boolean addMachineNumberList(List<MachineNumber> list, String openid, Member member) {
+        boolean flag = false;
+        boolean isflag = true;//判断是否需要进入循环
+        int sum = 0;
+        String qrcode = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";//暂时不用二维码
+        MachineNumber machineNumber = new MachineNumber();
+        machineNumber.setNumberOpenId(openid);
+        machineNumber.setPage(null);
+        List<MachineNumber> numberList = new ArrayList<MachineNumber>();
+
+        if (list == null || list.size() <= 0) {
+            return flag;
+        }
+
+        //生成条形码
+        String userid = member.getUserId().toString();
+        int len = 11;//条形码不加sum的定长
+        StringBuilder berQrcode = new StringBuilder(userid);
+        String dateTime = String.valueOf(new Date().getTime());
+        int dateTimeLen = len - userid.length();
+        dateTime = dateTime.substring(0,dateTimeLen);
+        berQrcode.append(dateTime);
+
+        //根据条形码查询该机器信息
+        List<MachineNumber> machineList = machineNumberMapper.listMachineNumber(machineNumber);
+        if (machineList == null || machineList.size() == 0) {
+            numberList = list;
+            isflag = false;
+        }
+        if (isflag) {
+            //循环筛选出还未添加的机器信息
+            for (MachineNumber machine : list) {
+                int num = 0;
+                sum++;
+                for (MachineNumber number : machineList) {
+                    if (machine.getNumberSalesTime().getTime() == number.getNumberSalesTime().getTime()) {
+                        num++;
+                    }
+                }
+                if (num == 0) {
+
+                    //生成机器二维码
+                    /*String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode + sum);
+                    QRCJson qrc = WeixinUtil.createQrcode(json);*/
+                    //不需要用到二维码,所以给默认值
+                    machine.setNumberQrcode(qrcode);
+                    machine.setNumberBarcode(berQrcode.toString() + sum);
+                    machine.setNumberBatch(berQrcode.toString());
+                    machine.setNumberStatus(1);
+                    numberList.add(machine);
+                }
+            }
+        } else {
+            for (MachineNumber machine : numberList) {
+                sum++;
+                //生成机器二维码
+                /*String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode + sum);
+                QRCJson qrc = WeixinUtil.createQrcode(json);*/
+                machine.setNumberQrcode(qrcode);
+                machine.setNumberBarcode(berQrcode.toString() + sum);
+                machine.setNumberBatch(berQrcode.toString());
+                machine.setNumberStatus(1);
+            }
+        }
+
+        //修改用户信息
+        int num = memberService.updateMemberByUserId(member);
+        //批量添加
+        int count = 1;
+        if (numberList.size() > 0) {
+            count = machineNumberMapper.addMachineNumberList(numberList);
+        }
+        if (num > 0 && count > 0) {
+            flag = true;
+        } else {
+            flag = false;
+        }
+
+        return flag;
+    }
 }

+ 13 - 6
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MachineNumberMapper.java

@@ -85,11 +85,18 @@ public interface MachineNumberMapper {
   */
     List<MachineNumberLogs> qrcodProgressUpdate(String[] logsBatchs);
 
- /**
-  * 添加机器编号,二维码及用户信息
-  * @param machineNumber
-  * @return
-  */
-  Integer addMachineNumberAndUser(MachineNumber machineNumber);
+   /**
+    * 添加机器编号,二维码及用户信息
+    * @param machineNumber
+    * @return
+    */
+    Integer addMachineNumberAndUser(MachineNumber machineNumber);
+
+   /**
+    * 批量添加机器编号信息
+    * @param list
+    * @return
+    */
+   Integer addMachineNumberList(List<MachineNumber> list);
 
 }

+ 19 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/machineNumberMapper.xml

@@ -185,4 +185,23 @@ PUBLIC
 		VALUES
 		(#{numberOpenId},#{numberQrcode},#{numberBarcode},#{numberBatch},#{numberSalesTime},1,NOW(),#{numberSubTime})
 	</insert>
+
+	<insert id="addMachineNumberList" parameterType="ArrayList">
+		<selectKey resultType="int" keyProperty="numberId" order="AFTER">
+			SELECT
+			LAST_INSERT_ID()
+		</selectKey>
+		INSERT INTO tb_iamberry_user_machine_number
+		(
+			number_open_id,number_qrcode,number_barcode,number_batch,number_sales_time,
+			number_status,number_create_time,number_sub_time
+		)
+		VALUES
+		<foreach collection="list" item="item" index="index" separator="," >
+			(
+			#{item.numberOpenId},#{item.numberQrcode},#{item.numberBarcode},#{item.numberBatch},
+			#{item.numberSalesTime},#{item.numberStatus},NOW(),NOW()
+			)
+		</foreach>
+	</insert>
 </mapper>

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

@@ -45,6 +45,12 @@
             <artifactId>jstl</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.7.3</version>
+        </dependency>
+
         <!-- 新的项目使用druid -->
         <dependency>
             <groupId>com.alibaba</groupId>

+ 26 - 0
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -3,10 +3,16 @@ package com.iamberry.wechat.handles.mq;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
+import com.iamberry.wechat.face.admin.SystemService;
+import com.iamberry.wechat.tools.HttpClient431Util;
+import com.iamberry.wechat.tools.NameUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,6 +66,8 @@ public class MQTask implements InitializingBean {
 	
 	@Autowired
 	private CodeService codeService;
+	@Autowired
+	private SystemService systemService;
 	
 	private Lock lock = new ReentrantLock();
 
@@ -349,4 +357,22 @@ public class MQTask implements InitializingBean {
 			}
 		}
 	}
+
+	@SuppressWarnings(value = {"unchecked", "rawtypes"})
+	@Scheduled(cron = "0 0/1 * * * ?")
+	public void selectEfastOrder() {
+		try{
+			//获取cookie值
+			ShopSystemRule rule =  systemService.selectOneShopRuleById(244);
+			String phone = "13590159563";
+			String url = NameUtils.getConfig("efast_order_url") + phone;
+			Map<String,String> params = new HashMap<String,String>();
+			String cookie = rule.getRuleDesc();
+			//查询百胜订单信息
+			String str = HttpClient431Util.doGet(params,url,null,null,cookie);
+		} catch(Exception e) {
+			System.out.println("------------请求百胜接口失败-------------");
+		}
+
+	}
 }

File diff suppressed because it is too large
+ 199 - 6
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/qrcode/MachineQrCodeHandler.java


File diff suppressed because it is too large
+ 2 - 0
wateroPF-wechat-web/src/main/resources/platform.properties


+ 3 - 3
wateroPF-wechat-web/src/main/webapp/WEB-INF/views/wechat/vip_center.html

@@ -131,9 +131,9 @@
 				<div class="iconfont icon-wodequanbao"></div>
 				我的券包
 			</a>
-			<a  id="myMachine" class="mui-control-item" href="/wateroPF/view/my_equipment1.html" style="display:none">
-				<div class="iconfont icon-shebeiliebiao"></div>
-				我的设备
+			<a  id="myMachine" class="mui-control-item" href="/wateroPF/view/warranty_card.html">
+				<div class="iconfont icon-zhi"></div>
+				质保卡
 			</a>
 			<a id="fenxiao" class="mui-control-item try-a-fenxiao" href="#" style="display:none">
 				<div class="iconfont icon-fenxiaozhongxin"></div>

+ 2 - 2
wateroPF-wechat-web/src/main/webapp/common/shop/js/page/vip_center.js

@@ -70,9 +70,9 @@ mui.ready(function() {
                     $("#2WM").hide();
                     $("#fx2WM").show();
                 }
-                if(data.isMachine == 2){ //是否有机器 1:有 2:没有   没有机器则直接跳转到绑定机器页面
+                /*if(data.isMachine == 2){ //是否有机器 1:有 2:没有   没有机器则直接跳转到绑定机器页面
                     $("#myMachine").attr("href","/wateroPF/view/personal_information.html");
-                }
+                }*/
 
                 $.ajax({
 					type: 'post',

+ 355 - 0
wateroPF-wechat-web/src/main/webapp/view/add_machine.html

@@ -0,0 +1,355 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>领取质保卡</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/css/mui.min.css?v=2017072401" />
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/css/mui.picker.min.css?v=2017072401" />
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/new/css/iconfont.css?v=2017072401" />
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/css/style.css?v=2017072401" />
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/new/css/personal_information.css?v=2017072401" />
+		<style>
+			h4{margin-top:5px;margin-bottom: 5px;font-size: 20px;}
+			.btn-pull-code{position: absolute;right: 10px;top:7px;height:34px;padding:0 6px;border-radius: 5px; line-height: 34px;font-size: 12px; color: #fff; background: #24cae9;}
+			.btn-pull-code .active{background: #c8c8c8;}
+			.icon-fuxuankuang a{color: #24cae9;}
+			.icon-yanse,.icon-youhui,.icon-fuxuankuang,.icon-jiage,.icon-songhuo{font-size: 15px;padding-left: 22px;}
+			.icon-yanse:before,.icon-fuxuankuang:before,.icon-youhui:before,.icon-jiage:before,.icon-songhuo:before{font-size: 18px;color: #24cae9;position: absolute;left: 0;width: 20px;height: 18px;}
+			.try_price{color: #f1436c;}
+			.ul_radio{width: 100%;}
+			.ul_radio li{width:21%;height: 55px;margin: 0 1%;border: 1px solid rgba(0,0,0,.1);border-radius: 5px; display: inline-block;position: relative;font-family:"iconfont" !important;font-style:normal;-webkit-font-smoothing: antialiased;}
+			.ul_radio .active:after{position: absolute;right: 0;bottom: 0;content: "\e66f";color: #f1436c;line-height: 1;font-size: 20px;}
+
+			.head-img {position: absolute;bottom: 15px;right: 13px;width: 60px;height: 60px;border-radius: 30px;border: 3px solid #E5E5E5;}
+			.mui-table-view .mui-media .mui-media-body{height: 41px;line-height: 41px;color: #333;}
+			.mui-table-view .mui-media .mui-media-body>span{color: #f1436c;}
+			.my-table-view-try{border-top: .6em solid #f0f0f0;border-bottom: .6em solid #f0f0f0;padding-bottom: 10px;}
+			.my-table-view-try .mui-table-view-cell{padding:10px 13px 10px 30px !important;font-size: 12px;}
+			.mui-table-view-cell:after,.mui-table-view:before,.mui-table-view:after,.mui-input-group .mui-input-row:after,.mui-input-group:before,.mui-input-group:after{display: none;}
+			.mui-table-view-cell>a:not(.mui-btn){color: #666;margin: -15px -15px;}
+			.mui-table-view-cell>a .mui-pull-right{color: #999;font-size: 14px;}
+			#btn_submit{color: #fff;padding: 10px 0;font-size: 18px;background: #24cae9;width: 70%;margin:40px auto 0 auto;}
+			.mui-btn-block.mui-active,.btn-pull-code.mui-active{background-color: #c8c8c8 !important;}
+			.icon-fuxuankuang.mui-active:before{color: #c8c8c8;}
+			.mui-content-padded{margin: 10px 13px;}
+			.tips{padding: 25px 10px;background: #36a4c6;text-align: center;color: #fff;}
+			.mui-input-group .mui-input-row {height: 50px;padding: 5px 0;border: 1px solid rgba(0,0,0,.1); margin:10px 0;}
+			.mui-input-row label{color: #666;width:27%;font-size: 15px;}
+			.mui-input-row label~input{width:73%;}
+			.mui-input-row label~input::-webkit-input-placeholder{font-size: 15px;}
+			.triangle-down {width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;}
+			.my-arrowright{position: absolute;right: 18px;top: 28px;color: #666;pointer-events:none;}
+			.mui-btn-red{background-color: #e9004c;}
+			.icon-saoma{position: absolute;right: 0;top:0;padding: 12px;color: #55c0dc;}
+			.mui-icon-arrowdown{position: absolute;right: 0;top:0;padding: 12px;color: #999;pointer-events: none;}
+		</style>
+	</head>
+	<body style="background: #fff;">
+	<div class="loading-bg">
+			<div class="mui-loading">
+				<div class="mui-spinner">
+				</div>
+				&nbsp;&nbsp;加载中...
+			</div>
+	</div>
+
+					<div class="mui-content" style="background: #fff;">
+				<div class="tips more">
+					<h4>现在完善机器信息!</h4>
+					<span>尊享WaterO全面服务保障</span>
+					<div></div>
+				</div>
+				<div class="mui-content-padded">
+				<form class="mui-input-group">
+					<div class="mui-input-row">
+						<label>您的姓名</label>
+						<input type="text" maxlength="12" class="mui-input-clear" placeholder="请填写您的姓名" id="ipt-name">
+					</div>
+					<div class="mui-input-row">
+						<label>您的邮箱</label>
+						<input type="text" maxlength="32" class="mui-input-clear" placeholder="请填写您的邮箱" id="ipt-email">
+					</div>
+					<div class="mui-input-row">
+						<label>手机号码</label>
+						<input type="tel" maxlength="11" class="mui-input-clear" placeholder="请填写物流发货时预留的手机号" id="ipt-phone">
+					</div>
+					<div class="mui-input-row">
+						<label>验&nbsp;&nbsp;证&nbsp;&nbsp;码</label>
+						<input type="text" maxlength="4" placeholder="请输入验证码" id="ipt-code">
+						<span class="btn-pull-code" id="pull-code">获取验证码</span>
+					</div>
+					<div class="">
+						<label style="color: red;"><b>*注意:</b><label>请填写与您物流信息相符的联系电话,否则将会无法识别您的产品信息</label></label>
+					</div>
+
+				</form>
+				</div>
+				<div class="mui-content-padded">
+					<button type="button" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="提交中" class="mui-btn mui-btn-block mui-btn-outlined mui-active" id="btn_submit" disabled="disabled" >提交</button>
+				</div>
+			</div>
+
+	<script src="//s.iamberry.com/wateroPF/js/mui.min.js?v=2016101701"></script>
+	<script src="//s.iamberry.com/wateroPF/js/mui.picker.min.js"></script>
+	<script src="//s.iamberry.com/wateroPF/js/jquery-2.1.1.min.js"></script>
+	<script src="//s.iamberry.com/wateroPF/js/shop/main.js?v=2016101701"></script>
+	<script src="//s.iamberry.com/wateroPF/js/shop/wechat-utils-1.0.js"></script>
+<script type="text/javascript">
+
+	var check = false,alert_msg='';
+	var mobile=/^(13|14|15|18)[0-9]{9}$/; //手机号码
+	var uname = /^[\u4e00-\u9fa5]{1,12}$/; //中文英文
+    var email=/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,18}$/;
+	var code = /^[0-9]{4}$/; //数字
+	mui.ready(function(){
+		console.log("页面加载完毕")
+		document.querySelector('.loading-bg').style.display='none';
+	});
+
+	mui('body').on('tap', '#btn_submit', function() {
+		change_input();
+		if(check){
+			console.log("提交");
+			mui(this).button('loading');
+			setTimeout(function() {
+        mui(this).button('reset');
+    }.bind(this), 2000);
+			//mui.alert("本批watero试用机为新机,请您在试用过程中足够爱惜,切勿刮划机身及损坏包装,感谢您的配合!");
+			var data_array = {
+				"userTel":$('#ipt-phone').val()
+			};
+            $.ajax({
+                type: 'post',
+                url: base_path + '/qrcode/select_efast_order_num',
+                data:data_array,
+                dataType: 'json',
+                timeout: 15000,
+                success: function(dt) {
+                    if (dt.status) {
+                        console.log(dt);
+                        var num = dt.data.num;
+                        var txtTime = dt.data.txtTime;
+                        var text = '您有'+ dt.data.num + '个订单,是否确认领取质保卡?';
+                        var btnArray = ['否', '是'];
+                        mui.confirm(text, '提示', btnArray, function(e) {
+                            var data_all = {
+                                "phoneCode":$('#ipt-code').val(),
+                                "userName":$('#ipt-name').val(),
+                                "userTel":$('#ipt-phone').val(),
+                                "userEmail":$('#ipt-email').val(),
+								"txtTime":txtTime
+                            };
+                            $.ajax({
+                                type: 'post',
+                                url: base_path + '/qrcode/add_warranty_card',
+                                data:data_all,
+                                dataType: 'json',
+                                timeout: 15000,
+                                success: function(dt) {
+                                    if (dt.status) {
+                                        mui.openWindow({
+                                            url: '/wateroPF/view/warranty_card.html'
+                                        })
+                                    } else {
+                                        mui.alert(dt.message);
+                                    }
+                                },
+                                error: function(xhr, type, errorThrown) {
+                                    mui.alert("请检查网络或刷新页面重试!");
+                                }
+                            });
+                        });
+                    } else {
+                        mui.alert(dt.message);
+                    }
+                },
+                error: function(xhr, type, errorThrown) {
+                    mui.alert("请检查网络或刷新页面重试!");
+                }
+            });
+		}else{
+			console.log("未通过");
+			mui.alert(alert_msg);
+		}
+	});
+	mui('body').on('tap', '#xieyi-dalog', function() {
+		mui.openWindow({
+			url: 'try_xieyi.html'
+		});
+	});
+$(".ul_radio li").each(function() {
+	$(this).on("click", function() {
+		$(this).addClass("active");
+		$(this).siblings().removeClass("active");
+	});
+});
+$(document).on('tap', '#btn-tongyi', function() {
+	var btn_submit=$("#btn_submit");
+	console.log($(this).hasClass("mui-active"));
+	if($(this).hasClass("mui-active")){
+		$(this).removeClass("mui-active");
+		btn_submit.removeClass("mui-active");
+	}else{
+		$(this).addClass("mui-active");
+		btn_submit.addClass("mui-active");
+	}
+});
+$(document).on('tap', '#pull-code', function() {
+	if($("#ipt-phone").val().trim()=="" &&(!$("#pull-code").hasClass("mui-active"))){
+		mui.alert("请填写手机号码");
+		return;
+	}else{
+		if(!mobile.test($("#ipt-phone").val().trim())){
+			mui.alert("手机号码不正确,请重新填写");
+			return;
+		}else{
+			if($(this).hasClass("mui-active")){
+				mui.alert();
+				return;
+			}else{
+				$(this).addClass("mui-active");
+                $('#btn_submit').removeClass("mui-active");
+                $('#btn_submit').removeAttr("disabled");
+				settime("pull-code");
+                $.ajax({
+                    type: 'post',
+                    url: base_path + '/qrcode/send_phone_code',
+					data:{
+                        "phone" : $("#ipt-phone").val()
+                    },
+                    dataType: 'json',
+                    timeout: 15000,
+                    success: function(dt) {
+                    },
+                    error: function(xhr, type, errorThrown) {
+                        mui.alert("请检查网络或刷新页面重试!");
+                    }
+                });
+			}
+		}
+	}
+});
+var countdown=60; 
+function settime(val) { 
+pullid=dc(val);
+if (countdown == 0) { 
+pullid.removeAttribute("disabled");
+pullid.className='btn-pull-code';
+pullid.innerText="获取验证码"; 
+countdown = 60; 
+return false;
+} else { 
+pullid.setAttribute("disabled", true); 
+pullid.className='btn-pull-code mui-active';
+pullid.innerText="重新发送(" + countdown + ")"; 
+countdown--; 
+} 
+setTimeout(function() { 
+settime(val) 
+},1000) 
+} 
+function change_input() {
+    //活动暂时结束   下次开启时注释这段代码就好了
+    /*alert_msg="活动已暂停,开始时间请联系客服";
+    check=false;
+    return false;*/
+
+
+	$(".mui-input-group input").each(function(index) {
+		switch ($(this).attr("id")){
+			case "ipt-name":
+			if($(this).val().trim()==""){
+				alert_msg="请填写姓名";
+				check=false;
+				return false;
+			}else{
+				if(uname.test($(this).val())) {
+					check=true;
+				}else{
+					alert_msg="姓名格式不正确,请重新填写";
+					check=false;
+					return false;
+				}
+			}
+				break;
+            case "ipt-email":
+                if($(this).val().trim()==""){
+                    alert_msg="请填写您的邮箱";
+                    check=false;
+                    return false;
+                }else{
+                    if(email.test($(this).val())) {
+                        check=true;
+                    }else{
+                        alert_msg="邮箱格式不正确,请重新填写";
+                        check=false;
+                        return false;
+                    }
+                }
+                break;
+			case "ipt-phone":
+			if($(this).val().trim()==""){
+				alert_msg="请填写手机号";
+				check=false;
+				return false;
+			}else{
+				if(mobile.test($(this).val().trim())) {
+					check=true;
+				}else{
+					alert_msg="手机号码不正确,请重新填写";
+					check=false;
+					return false;
+				}
+			}
+				break;
+			case "ipt-code":
+			if($(this).val().trim()==""){
+				alert_msg="请填写验证码";
+				check=false;
+				return false;
+			}else{
+				if(code.test($(this).val().trim())) {
+					check=true;
+				}else{
+					alert_msg="验证码格式不正确,请重新填写";
+					check=false;
+					return false;
+				}
+			}
+				break;
+			default:
+				break;
+		}
+	});
+	var btn_submit = dc('btn_submit');
+	if(check) {
+		console.log("通过")
+	} else {
+		console.log(alert_msg);
+	}
+}
+
+
+var flag = false;
+var mask = mui.createMask(function() {
+	return flag;
+	}); //callback为用户点击蒙版时自动执行的回调;
+	 mui('body').on('tap', '#ipt-date', function() {
+        var th = this;
+        var picker = new mui.DtPicker({
+            type: "date", //设置日历初始视图模式
+            beginDate: new Date(2016, 7, 1), //设置开始日期
+            endDate: new Date() //设置结束日期
+        });
+        console.log(picker)
+        picker.show(function(rs) {
+            th.value = rs.text;
+            picker.dispose();
+        });
+    });
+	</script>
+	</body>
+</html>

+ 152 - 0
wateroPF-wechat-web/src/main/webapp/view/warranty_card.html

@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>质保卡</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/css/mui.min.css">
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/new/css/iconfont.css" />
+		<link rel="stylesheet" type="text/css" href="//s.iamberry.com/wateroPF/css/style.css" />
+		<style type="text/css">
+			.warranty-box{margin: 10px;position: relative;}
+			.warranty-box>img{width: 100%;}
+			.warranty-name{position: absolute;color: #fff;top: 22px;left: 85px;font-size: 18px;}
+			.warranty-tips{color: #fff;position: absolute;top: 48px;left: 85px;}
+			.icon-chanpintiyan{color: #fff;font-size: 50px;}
+			.jiqi{position: absolute;left: 20px;top: 20px;line-height: 1;border-radius: 50%;
+			box-shadow:-3px 0 3px #73c7e0, /*左边阴影*/  
+			3px 0 3px #73c7e0, /*右边阴影*/  
+			 0 -4px 3px #73c7e0, /*顶部阴影*/  
+			 0 1px 3px #73c7e0; /*底边阴影*/ }
+			 .date-list{display: table;width: 100%;position: absolute;top: 50%;text-align: center;}
+			 .date-list>div{display: table-cell;color: #fff;position: relative;}
+			 .date-list>div:after{content: '';width: 1px;top: 25%;height: 50%;background-color: #fff;-webkit-transform: scaleX(.5);position: absolute;right: 0;}
+			 .warranty-number{position: absolute;left: 20px;bottom: 15px;color: #fff;}
+		</style>
+	</head>
+	<body style="background: #fff;">
+	<div class="loading-bg">
+			<div class="mui-loading">
+				<div class="mui-spinner">
+				</div>
+				&nbsp;&nbsp;加载中...
+			</div>
+		</div>
+	<div class="mui-content" style="background: #fff;">
+	<div style="margin: 10px 10px 15px 10px;">
+		<div style="padding:0 0 10px 0"><span class="iconfont icon-shouhoudianhua" style="color: #1bcba8;float: left;"></span> &nbsp;&nbsp;联系方式</div>
+		<p>1、公众号联系客服&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、客服电话:<a href="400 8006 692">400 8006 692</a></p>
+	</div>
+	<div class="data-cards" id="data-cards">
+
+			<div class="warranty-box" id="add_warranty" style="display: none;">
+				<img src="//s.iamberry.com/wateroPF/new/images/shop/warranty_card.png"/>
+				<img class="go_add_warranty_card" style="position: absolute;width: 30%;left: 35%;top: 22%;" src="//s.iamberry.com/wateroPF/new/images/shop/add_warranty_card.png"/>
+				<div style="position: absolute;bottom: 15%;color: #fff;text-align: center;width: 100%;">添加质保卡</div>
+			</div>
+
+		<!--<div class="mui-content" style="background: #fff;">
+			<div class="warranty-box">
+				<img src="//s.iamberry.com/wateroPF/new/images/shop/warranty_card.png"/>
+				<span class="jiqi" style=""><span class="iconfont icon-chanpintiyan"></span></span>
+				<span class="warranty-name">美国watero净饮水一体机</span>
+				<span class="warranty-tips">一年换新、十年质保</span>
+				<div class="date-list">
+					<div>购买日期<br/>2017-01-02</div>
+					<div>换新截止<br/>2017-01-02</div>
+					<div>质保截止<br/>2017-01-02</div>
+				</div>
+				<div class="warranty-number">NO.  1599  9999  999</div>
+			</div>
+		</div>-->
+	</div>
+	</div>
+	<script src="//s.iamberry.com/wateroPF/js/mui.min.js?v=2016101701"></script>
+	<script src="//s.iamberry.com/wateroPF/js/jquery-2.1.1.min.js"></script>
+	<script src="//s.iamberry.com/wateroPF/new/js/page/main.js?v=2016101701"></script>
+	<script type="text/javascript">
+	mui.ready(function(){
+
+        mui.ajax(base_path + '/qrcode/select_warranty_card_list?dates=' + new Date().getTime(), {
+            dataType: 'json',
+            type: 'post',
+            timeout: 15000,
+            success: function(dt) {
+                if(dt.isRedirect) {
+                    location.href = dt.redirectURL;
+                } else {
+                    if(dt.status) {
+                        var data_cards = dt.data;
+                        var table = $('#data-cards');
+                        var li = '';
+                        mui(data_cards).each(function(index) {
+                            li += '<div class="mui-content" style="background: #fff;">'
+                                +'<div class="warranty-box">'
+                                +'<img src="//s.iamberry.com/wateroPF/new/images/shop/warranty_card.png"/>'
+                                +'<span class="jiqi" style=""><span class="iconfont icon-chanpintiyan"></span></span>'
+                                +'<span class="warranty-name">美国WaterO可移动智能净水机</span>'
+                                +'<span class="warranty-tips">一年只换不修、三年包修、十年保修</span>'
+								+'<div class="date-list">'
+                                +'<div>购买日期<br/>' + dateFormat(this.cardSaleTime) + '</div>'
+                                +'<div>换新截止<br/>' + dateFormat(this.cardRenewTime) + '</div>'
+                                +'<div>质保截止<br/>' + dateFormat(this.cardEndTime) + '</div>'
+                                +'</div>'
+                                +'<div class="warranty-number">NO.&nbsp;&nbsp;'+ datePhone(this.cardBarcode) +'</div>'
+                            	+'</div>'
+                            	+'</div>'
+                        });
+                        if (li == '') {
+                            $('#add_warranty').show();
+                        } else {
+                            $('#add_warranty').hide();
+                        }
+                        table.append(li);
+                    } else {
+                        mui.alert(dt.message);
+                    }
+                }
+            },
+            error: function(xhr, type, errorThrown) {
+                //异常处理;
+                console.log(xhr);
+            }
+        });
+        document.querySelector('.loading-bg').style.display='none';
+	});
+
+	function datePhone(phone) {
+	    if (phone != null && phone.length >= 12) {
+			var phone1 = phone.substring(0,4);
+            var phone2 = phone.substring(4,8);
+            var phone3 = phone.substring(8,12);
+            var phone4 = phone.substring(12,phone.length);
+            return phone1 + "&nbsp;&nbsp;" + phone2 + "&nbsp;&nbsp;" + phone3 + "&nbsp;&nbsp;" + phone4;
+		}
+	}
+	//添加质保卡
+    mui('body').on('tap', '.go_add_warranty_card', function() {
+        location.href='/wateroPF/view/add_machine.html';
+	});
+
+    function dateFormat(now) {
+        if (now == null || now == '') {
+            return '暂无';
+        } else {
+            now = new Date(now);
+            var year = now.getFullYear();
+            var month = now.getMonth() + 1;
+            var date = now.getDate();
+            if (month < 10) {
+                month = "0" + month;
+			}
+			if (date < 10) {
+                date = "0" + date;
+			}
+            return year + "-" + month + "-" + date
+        }
+    };
+	</script>
+	</body>
+</html>