瀏覽代碼

Merge branch 'master' of http://git.yvanui.com/hust/wuhan_epi

maoyunfeng 5 年之前
父節點
當前提交
3682f3b3d0
共有 29 個文件被更改,包括 789 次插入183 次删除
  1. 14 4
      whepi-doc/login.sql
  2. 3 2
      whepi-doc/mrsb.sql
  3. 8 30
      whepi-ui/templates/home/help.ftl
  4. 51 1
      whepi-ui/templates/home/qiuzhu.js
  5. 2 2
      whepi-ui/templates/home/ribao.ftl
  6. 10 10
      whepi-ui/templates/home/ribao.js
  7. 16 14
      whepi-ui/templates/yeweihui/home.ftl
  8. 8 5
      whepi-ui/templates/yeweihui/houseSelect.ftl
  9. 35 5
      whepi-ui/templates/yeweihui/qiuzhu.ftl
  10. 134 48
      whepi-ui/templates/yeweihui/qiuzhu.js
  11. 92 0
      whepi-ui/templates/yeweihui/qiuzhuDetail.ftl
  12. 10 0
      whepi-web/src/main/java/com/bofeng/dao/MsReportMapper.java
  13. 6 0
      whepi-web/src/main/java/com/bofeng/dao/MsSuspectedMapper.java
  14. 7 1
      whepi-web/src/main/java/com/bofeng/dao/QzTaskDao.java
  15. 2 2
      whepi-web/src/main/java/com/bofeng/dao/QzTaskReplyDao.java
  16. 5 0
      whepi-web/src/main/java/com/bofeng/entity/MsReport.java
  17. 4 1
      whepi-web/src/main/java/com/bofeng/entity/MsSuspected.java
  18. 40 27
      whepi-web/src/main/java/com/bofeng/entity/QzTaskReply.java
  19. 32 0
      whepi-web/src/main/java/com/bofeng/service/MsReportService.java
  20. 44 13
      whepi-web/src/main/java/com/bofeng/service/MsSuspectedService.java
  21. 24 5
      whepi-web/src/main/java/com/bofeng/service/QzTaskReplyService.java
  22. 15 7
      whepi-web/src/main/java/com/bofeng/service/QzTaskService.java
  23. 5 5
      whepi-web/src/main/java/com/bofeng/wx/controller/MsReportController.java
  24. 72 0
      whepi-web/src/main/java/com/bofeng/wx/controller/YeWeiHuiController.java
  25. 1 1
      whepi-web/src/main/resources/application.yml
  26. 123 0
      whepi-web/src/main/resources/generator/QzTaskReplyDao.xml
  27. 7 0
      whepi-web/src/main/resources/mapper/MsReport.xml
  28. 7 0
      whepi-web/src/main/resources/mapper/MsSuspected.xml
  29. 12 0
      whepi-web/src/main/resources/mapper/QzTaskDao.xml

+ 14 - 4
whepi-doc/login.sql

@@ -129,15 +129,25 @@ CREATE TABLE sys_uptown  (
   PRIMARY KEY (uptown_id) USING BTREE
 ) ENGINE = InnoDB default charset=utf8 comment = '小区表';
 
-DROP TABLE IF EXISTS sys_uptown_house;
-CREATE TABLE sys_uptown_house  (
-  house_id         bigint(20) NOT NULL DEFAULT 0 COMMENT '门牌ID',
+DROP TABLE IF EXISTS sys_uptown_unit;
+CREATE TABLE sys_uptown_unit  (
+  unit_id         bigint(20) NOT NULL DEFAULT 0 COMMENT '单元ID',
   uptown_id         bigint(20) NOT NULL DEFAULT 0 COMMENT '小区ID',
   ridgepole         varchar(20) NOT NULL DEFAULT '' COMMENT '栋',
   unit              varchar(20) NOT NULL DEFAULT '' COMMENT '单元',
+  status            int(11) NOT NULL DEFAULT 0 COMMENT '状态:1正常,0草稿,-1删除',
+  time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '新增时间',
+  time_update       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
+  PRIMARY KEY (unit_id) USING BTREE
+) ENGINE = InnoDB default charset=utf8 comment = '栋,单元信息表';
+
+DROP TABLE IF EXISTS sys_uptown_house;
+CREATE TABLE sys_uptown_house  (
+  house_id         bigint(20) NOT NULL DEFAULT 0 COMMENT '门牌ID',
+  unit_id          bigint(20) NOT NULL DEFAULT 0 COMMENT '单元ID',
   doorplate         varchar(20)  NOT NULL DEFAULT '' COMMENT '门牌',
   status            int(11) NOT NULL DEFAULT 0 COMMENT '状态:1正常,0草稿,-1删除',
   time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '新增时间',
   time_update       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
   PRIMARY KEY (house_id) USING BTREE
-) ENGINE = InnoDB default charset=utf8 comment = '门牌信息表';
+) ENGINE = InnoDB default charset=utf8 comment = '门牌信息表';

+ 3 - 2
whepi-doc/mrsb.sql

@@ -8,6 +8,7 @@ CREATE TABLE ms_report  (
   safety_num        int(11) NOT NULL DEFAULT 0                              COMMENT '平安人数',
   suspected_num     int(11) NOT NULL DEFAULT 0                              COMMENT '疑似人数',
   remarks           varchar(100)  NOT NULL DEFAULT ''                       COMMENT '异常备注',
+  report_date       date (0)                                                COMMENT '上报日期',
   ms_status         int(11) NOT NULL DEFAULT 1                              COMMENT '健康状态:1正常,2异常',
   user_create       bigint(20) NOT NULL DEFAULT 0                           COMMENT '新增人',
   time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0)       COMMENT '新增时间',
@@ -24,11 +25,11 @@ DROP TABLE IF EXISTS ms_suspected;
 CREATE TABLE ms_suspected  (
   suspected_id      bigint(20) NOT NULL DEFAULT 0                           COMMENT '疑似ID',
   report_id         bigint(20) NOT NULL DEFAULT 0                           COMMENT '上报ID',
+  user_name         varchar(50)  NOT NULL DEFAULT ''                        COMMENT '家人姓名',
   family_relative   int(11)    NOT NULL DEFAULT 1                           COMMENT '是否家庭成员:1是,2暂住亲友',
   medical           int(11)    NOT NULL DEFAULT 1                           COMMENT '是否就医:1否,1是',
-  condition_status  int(11)    NOT NULL DEFAULT 0                           COMMENT '疑似情况:1咳嗽,2发烧,3腹泻,4胸痛,5咽痛,6其他 ',
+  condition_status  varchar(50)  NOT NULL DEFAULT ''                        COMMENT '疑似情况:1咳嗽,2发烧,3腹泻,4胸痛,5咽痛,6其他 ',
   remarks           varchar(100)  NOT NULL DEFAULT ''                       COMMENT '异常备注',
-
   user_create       bigint(20) NOT NULL DEFAULT 0                           COMMENT '新增人',
   time_create       datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0)       COMMENT '新增时间',
   user_update       bigint(20) NOT NULL DEFAULT 0                           COMMENT '修改人',

+ 8 - 30
whepi-ui/templates/home/help.ftl

@@ -28,37 +28,15 @@
         <div>生活必须品求助</div>
     </div>
     <div class="weui-panel weui-panel_access">
-        <div class="weui-panel__bd">
-            <a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">
-                <div class="weui-media-box__bd">
-                    <div style="display: flex; flex-direction: row; justify-content: space-between;">
-                        <p class="weui-media-box__desc">1. &nbsp;&nbsp; 7-2-202发出</p>
-                        <p class="weui-media-box__desc">2020-02-02 14:30</p>
-                    </div>
-                    <div class="weui-cell ">
-                        <div class="weui-cell__bd">
-                            <textarea class="weui-textarea" rows="1" readonly placeholder="只读"></textarea>
-                            <div class="weui-textarea-counter"></div>
-                        </div>
-                    </div>
-                </div>
-            </a>
-            <a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">
-                <div class="weui-media-box__bd">
-                    <div style="display: flex; flex-direction: row; justify-content: space-between;">
-                        <p class="weui-media-box__desc">1. &nbsp;&nbsp; 7-2-202回复</p>
-                        <p class="weui-media-box__desc">2020-02-02 14:30</p>
-                    </div>
-                    <div class="weui-cell ">
-                        <div class="weui-cell__bd">
-                            <textarea class="weui-textarea" rows="1" readonly placeholder="只读"></textarea>
-                            <div class="weui-textarea-counter"></div>
-                        </div>
-                    </div>
-                </div>
-            </a>
+        <div class="weui-panel__bd" id="qzHS">
         </div>
     </div>
 
 
-</div>
+</div>
+
+<script>
+
+
+
+</script>

+ 51 - 1
whepi-ui/templates/home/qiuzhu.js

@@ -12,15 +12,64 @@ function help() {
     if ($('#titlteZs')[0].style.display == 'none') {
       $('#notitle').toggle();
       $('#titlteZs')[0].style.display = '';
+
+      //详情页面的展示
+      $.ajax({
+        url: '/home/home/taskQuery',
+        data: {},
+        type: 'GET',
+        success: function (data) {
+          console.log(data);
+          if (data.data.length > 0) {
+            hasData = true;
+            data.data.forEach(function (v) {
+              shValue(v);
+            });
+          } else {
+
+          }
+        },
+        error: function () {
+        }
+      });
+      /*$('#qzHS').*/
+
     } else {
       $('#notitle')[0].style.display = '';
       $('#titlteZs')[0].style.display = 'none';
     }
-
   })
 
 }
 
+function shValue(v) {
+  $('#qzHS').append($('<a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">\n' +
+    '                <div class="weui-media-box__bd">\n' +
+    '                    <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
+    '                        <p class="weui-media-box__desc">业主1号</p>\n' +
+    '                        <p class="weui-media-box__desc">' + timestampToTime(v.timeUpdate) + '</p>\n' +
+    '                    </div>\n' +
+    '                    <div class="weui-cell ">\n' +
+    '                        <div class="weui-cell__bd">\n' +
+    '                            <textarea class="weui-textarea" rows="1" readonly >' + v.replyContent + '</textarea>\n' +
+    '                            <div class="weui-textarea-counter"></div>\n' +
+    '                        </div>\n' +
+    '                    </div>\n' +
+    '                </div>\n' +
+    '            </a>\n<br />'));
+}
+
+function timestampToTime(timestamp) {
+  var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+  var Y = date.getFullYear() + '/';
+  var M = ((date.getMonth() + 1) < 10) ? ('0' + (date.getMonth() + 1) + '/') : ((date.getMonth() + 1) + '/');
+  var D = (date.getDate() < 10) ? ('0' + date.getDate() + ' ') : (date.getDate() + ' ');
+  var h = (date.getHours() < 10) ? ('0' + date.getHours() + ':') : (date.getHours() + ':');
+  var m = (date.getMinutes() < 10) ? ('0' + date.getMinutes() + ':') : (date.getMinutes() + ':');
+  var s = (date.getSeconds() < 10) ? ('0' + date.getSeconds()) : (date.getSeconds());
+  return Y + M + D + h + m + s;
+}
+
 function family_init() {
   /*$('#family').on('click',function () {
     $('#familyDisplay')[0].style.display == '';
@@ -44,5 +93,6 @@ function submit_back() {
       $('#play').toggle();
 
     }
+
   })
 }

+ 2 - 2
whepi-ui/templates/home/ribao.ftl

@@ -66,7 +66,7 @@
                                 <div class="weui-cell weui-cell_active" id="js_cell">
                                     <div class="weui-cell__hd"><label class="weui-label">家人</label></div>
                                     <div class="weui-cell__bd weui-flex">
-                                        <input id="js_input_xingming" class="weui-input" autofocus="" type="text"
+                                        <input id="js_input_user_name" class="weui-input" autofocus="" type="text"
                                                placeholder="请输入姓名" maxlength="20">
                                     </div>
                                 </div>
@@ -110,7 +110,7 @@
                                 </div>
                                 <div class="weui-cell ">
                                     <div class="weui-cell__bd">
-                                        <textarea class="weui-textarea" placeholder="请输入病情描述" rows="3"></textarea>
+                                        <textarea id="rb_remarks" class="weui-textarea" placeholder="请输入病情描述" rows="3"></textarea>
                                         <div class="weui-textarea-counter"><span>0</span>/200</div>
                                     </div>
                                 </div>

+ 10 - 10
whepi-ui/templates/home/ribao.js

@@ -45,21 +45,21 @@ function ribao_commit() {
 
 
 function ribaoCommit() {
-  var userType = $('input:radio:checked').val();
-  var linkman = $("#linkman").val();
-  var phone = $("#phone").val();
-  console.log(userType)
-  console.log(linkman)
-  console.log(phone)
+  var user_name = $("#js_input_user_name").val();
+  var remarks = $("#rb_remarks").val();
+  var medical = $('input:radio:checked').val();
+  console.log(user_name)
+  console.log(remarks)
+  console.log(medical)
 
   $.ajax({
     url: '/home/addRibao.json',
     type: "post",
     data: {
-      "userId": 123,
-      "userType": userType,
-      "linkman": '',
-      "phone": '',
+      "userName": user_name,
+      "conditionStatus": "",
+      "medical": medical,
+      "remarks": remarks,
     },
   });
 }

+ 16 - 14
whepi-ui/templates/yeweihui/home.ftl

@@ -37,23 +37,23 @@
 
 <#include "/home/frag.foot.ftl" />
 <script>
-    <#include "/yeweihui/ribao.js" />
-    <#include "/yeweihui/qiuzhu.js" />
+<#include "/yeweihui/ribao.js" />
+<#include "/yeweihui/qiuzhu.js" />
+
+var taskList = ${taskList!'[]'};
 var statisticsOrderList =${rbList!'[]'};
-(function ($) {
 
+(function ($) {
 
     $(function(){
-        $(function(){
-            $('.weui-navbar__item').on('click', function () {
-                $(this).addClass('weui-bar__item_on').siblings('.weui-bar__item_on').removeClass('weui-bar__item_on');
-                //内容切换
-                // var moduleClass = jQuery(this).attr("module");
-                // var ss = ".weui-tab__panel ." + moduleClass + "_weui_tab_bd_item_active";
-                // $(ss).removeClass(moduleClass + '_weui_tab_bd_item_active');
-                // var data_toggle =jQuery(this).attr("target");
-                // $(data_toggle).addClass(moduleClass + "_weui_tab_bd_item_active");
-            });
+        $('.weui-navbar__item').on('click', function () {
+            $(this).addClass('weui-bar__item_on').siblings('.weui-bar__item_on').removeClass('weui-bar__item_on');
+            //内容切换
+            var moduleClass = jQuery(this).attr("module");
+            var ss = ".weui-tab__panel ." + moduleClass + "_weui_tab_bd_item_active";
+            $(ss).removeClass(moduleClass + '_weui_tab_bd_item_active');
+            var data_toggle =jQuery(this).attr("target");
+            $(data_toggle).addClass(moduleClass + "_weui_tab_bd_item_active");
         });
 
     });
@@ -65,7 +65,9 @@ var statisticsOrderList =${rbList!'[]'};
     <#--console.log('ssssss');-->
     <#--var tasks = ${taskList!'[]'};-->
     // console.log('ssssss', tasks);
-    console.log('asdsfdgfhjghfgdf');
+    // console.log('asdsfdgfhjghfgdf');
+
+    ribao_init();
     qiuzhu_init();
 })(jQuery);
 </script>

+ 8 - 5
whepi-ui/templates/yeweihui/houseSelect.ftl

@@ -1,8 +1,11 @@
 <div class="weui-btn-area"  style="display: flex; flex-direction: row; justify-content: space-between;">
-    <div style="display: flex; flex-direction: row; justify-content: space-between;width: 60vw;">
-        <input id="dong" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 15vw;" href="javascript:" value="栋" onfocus="if (value =='栋'){value =''}" onblur="if (value ==''){value='栋'}" />
-        <input id="danyuan" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 17vw;" href="javascript:" value="单元" onfocus="if (value =='单元'){value =''}" onblur="if (value ==''){value='单元'}" />
-        <input id="menpaihao" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="门牌号" onfocus="if (value =='门牌号'){value =''}" onblur="if (value ==''){value='门牌号'}" />
+    <div style="display: flex; flex-direction: row; align-items: center; justify-content: space-between;width: 70vw;">
+<#--        <input id="qz_dong" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 15vw;" href="javascript:" value="栋" onfocus="if (value =='栋'){value =''}" onblur="if (value ==''){value='栋'}" />-->
+<#--        <input id="qz_danyuan" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="单元" onfocus="if (value =='单元'){value =''}" onblur="if (value ==''){value='单元'}" />-->
+<#--        <input id="qz_menpaihao" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="门牌号" onfocus="if (value =='门牌号'){value =''}" onblur="if (value ==''){value='门牌号'}" />-->
+        <input id="qz_searchNum" class="weui-input" placeholder="请输入门牌号,如:1-1-101" style="background-color: #d1d1d1; height: 5vh;" />
     </div>
-    <a id="btnQZ" class="weui-btn weui-btn_primary" style="width: 20vw;" href="javascript:">查询</a>
+    <a id="qz_btnQZ" class="weui-btn_primary" style="border: 1px solid rgba(0,0,0,.2);box-sizing:border-box; border-radius: 10px;" href="javascript:">
+        <div style="width: 20vw; height: 5vh;line-height:5vh; text-align: center; color: white">查询</div>
+    </a>
 </div>

+ 35 - 5
whepi-ui/templates/yeweihui/qiuzhu.ftl

@@ -5,16 +5,26 @@
                 未处理
             </a>
             <a class="weui-navbar__item" target="#qz_nav2" module="qiu_zhu">
-                处理
+                处理
             </a>
             <a class="weui-navbar__item" target="#qz_nav3" module="qiu_zhu">
-                处理
+                处理
             </a>
         </div>
         <div class="weui-tab__panel">
             <div id="qz_nav1" class="weui-tab__bd-item qiu_zhu_weui_tab_bd_item_active">
 
-                <#include "/yeweihui/houseSelect.ftl" />
+                <div class="weui-btn-area"  style="display: flex; flex-direction: row; justify-content: space-between;">
+                    <div style="display: flex; flex-direction: row; align-items: center; justify-content: space-between;width: 70vw;">
+                        <#--        <input id="qz_dong" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 15vw;" href="javascript:" value="栋" onfocus="if (value =='栋'){value =''}" onblur="if (value ==''){value='栋'}" />-->
+                        <#--        <input id="qz_danyuan" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="单元" onfocus="if (value =='单元'){value =''}" onblur="if (value ==''){value='单元'}" />-->
+                        <#--        <input id="qz_menpaihao" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="门牌号" onfocus="if (value =='门牌号'){value =''}" onblur="if (value ==''){value='门牌号'}" />-->
+                        <input id="qz_searchNum1" class="weui-input" placeholder="请输入门牌号,如:1-1-101" style="background-color: #d1d1d1; height: 5vh;" />
+                    </div>
+                    <a id="qz_btnQZ1" class="weui-btn_primary" style="border: 1px solid rgba(0,0,0,.2);box-sizing:border-box; border-radius: 10px;" href="javascript:">
+                        <div style="width: 20vw; height: 5vh;line-height:5vh; text-align: center; color: white">查询</div>
+                    </a>
+                </div>
 
                 <div class="weui-panel weui-panel_access">
                     <div id="qz_list1" class="weui-panel__bd">
@@ -39,7 +49,17 @@
             </div>
             <div id="qz_nav2" class="weui-tab__bd-item">
 
-                <#include "/yeweihui/houseSelect.ftl" />
+                <div class="weui-btn-area"  style="display: flex; flex-direction: row; justify-content: space-between;">
+                    <div style="display: flex; flex-direction: row; align-items: center; justify-content: space-between;width: 70vw;">
+                        <#--        <input id="qz_dong" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 15vw;" href="javascript:" value="栋" onfocus="if (value =='栋'){value =''}" onblur="if (value ==''){value='栋'}" />-->
+                        <#--        <input id="qz_danyuan" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="单元" onfocus="if (value =='单元'){value =''}" onblur="if (value ==''){value='单元'}" />-->
+                        <#--        <input id="qz_menpaihao" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="门牌号" onfocus="if (value =='门牌号'){value =''}" onblur="if (value ==''){value='门牌号'}" />-->
+                        <input id="qz_searchNum2" class="weui-input" placeholder="请输入门牌号,如:1-1-101" style="background-color: #d1d1d1; height: 5vh;" />
+                    </div>
+                    <a id="qz_btnQZ2" class="weui-btn_primary" style="border: 1px solid rgba(0,0,0,.2);box-sizing:border-box; border-radius: 10px;" href="javascript:">
+                        <div style="width: 20vw; height: 5vh;line-height:5vh; text-align: center; color: white">查询</div>
+                    </a>
+                </div>
 
                 <div class="weui-panel weui-panel_access">
                     <div id="qz_list2" class="weui-panel__bd">
@@ -64,7 +84,17 @@
             </div>
             <div id="qz_nav3" class="weui-tab__bd-item">
 
-                <#include "/yeweihui/houseSelect.ftl" />
+                <div class="weui-btn-area"  style="display: flex; flex-direction: row; justify-content: space-between;">
+                    <div style="display: flex; flex-direction: row; align-items: center; justify-content: space-between;width: 70vw;">
+                        <#--        <input id="qz_dong" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 15vw;" href="javascript:" value="栋" onfocus="if (value =='栋'){value =''}" onblur="if (value ==''){value='栋'}" />-->
+                        <#--        <input id="qz_danyuan" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="单元" onfocus="if (value =='单元'){value =''}" onblur="if (value ==''){value='单元'}" />-->
+                        <#--        <input id="qz_menpaihao" class="weui-btn" style="background-color: #d1d1d1; margin-top: 0; color: #0d1215; width: 20vw;" href="javascript:" value="门牌号" onfocus="if (value =='门牌号'){value =''}" onblur="if (value ==''){value='门牌号'}" />-->
+                        <input id="qz_searchNum3" class="weui-input" placeholder="请输入门牌号,如:1-1-101" style="background-color: #d1d1d1; height: 5vh;" />
+                    </div>
+                    <a id="qz_btnQZ3" class="weui-btn_primary" style="border: 1px solid rgba(0,0,0,.2);box-sizing:border-box; border-radius: 10px;" href="javascript:">
+                        <div style="width: 20vw; height: 5vh;line-height:5vh; text-align: center; color: white">查询</div>
+                    </a>
+                </div>
 
                 <div class="weui-panel weui-panel_access">
                     <div id="qz_list3" class="weui-panel__bd">

+ 134 - 48
whepi-ui/templates/yeweihui/qiuzhu.js

@@ -2,71 +2,157 @@ function qiuzhu_init() {
 
   makeUI(taskList);
 
-  $('#btnQZ').on('click', function () {
-    alert("查询");
-  });
+  $('#qz_btnQZ1').on('click', function () {
+
+    $.ajax({
+      url: '/yeweihui/qiuzhu/list.json',
+      type: 'post',
+      data: {
+        houseNumber: $('#qz_searchNum1').val(),
+        status: 1
+      },
+      success: function (data) {
+        makeList1(data.data);
+      },
+      error: function () {
+        $.alert("网络异常");
+      }
+    });
 
-  $("#dong").select({
-    title: "选择楼栋",
-    items: ["法官", "医生", "猎人", "学生", "记者", "其他"]
   });
 
-  $("#danyuan").select({
-    title: "选择单元",
-    items: ["法官", "医生", "猎人", "学生", "记者", "其他"]
+  $('#qz_btnQZ2').on('click', function () {
+
+    $.ajax({
+      url: '/yeweihui/qiuzhu/list.json',
+      type: 'post',
+      data: {
+        houseNumber: $('#qz_searchNum2').val(),
+        status: 2
+      },
+      success: function (data) {
+        makeList2(data.data);
+      },
+      error: function () {
+        $.alert("网络异常");
+      }
+    });
+
   });
 
-  $("#menpaihao").select({
-    title: "选择门牌号",
-    items: ["法官", "医生", "猎人", "学生", "记者", "其他"]
+  $('#qz_btnQZ3').on('click', function () {
+    $.ajax({
+      url: '/yeweihui/qiuzhu/list.json',
+      type: 'post',
+      data: {
+        houseNumber: $('#qz_searchNum3').val(),
+        status: 3
+      },
+      success: function (data) {
+        makeList3(data.data);
+      },
+      error: function () {
+        $.alert("网络异常");
+      }
+    });
   });
 }
 
 function makeUI(tasks) {
 
-  $('#qz_list1').empty();
-  $('#qz_list2').empty();
-  $('#qz_list3').empty();
+  let tasks1 = [];
+  let tasks2 = [];
+  let tasks3 = [];
 
-  for (var i = 0; i < tasks.length; i++) {
+  for (let i = 0; i < tasks.length; i++) {
 
-    var task = tasks[i];
-    if (task.taskStatus == 1) {
+    let task = tasks[i];
 
-      $('#qz_list1').append($('<a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">\n' +
-          '                            <div class="weui-media-box__bd">\n' +
-          '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
-          '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
-          '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
-          '                                </div>\n' +
-          '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
-          '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
-          '                            </div>\n' +
-          '                        </a>'));
+    if (task.taskStatus == 1) {
+      tasks1.push(task);
     }
     else if (task.taskStatus == 2) {
-      $('#qz_list2').append($('<a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">\n' +
-          '                            <div class="weui-media-box__bd">\n' +
-          '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
-          '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
-          '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
-          '                                </div>\n' +
-          '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
-          '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
-          '                            </div>\n' +
-          '                        </a>'));
+      tasks2.push(task);
     }
     else if (task.taskStatus == 3) {
-      $('#qz_list3').append($('<a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg">\n' +
-          '                            <div class="weui-media-box__bd">\n' +
-          '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
-          '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
-          '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
-          '                                </div>\n' +
-          '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
-          '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
-          '                            </div>\n' +
-          '                        </a>'));
+      tasks3.push(task);
     }
   }
+
+  makeList1(tasks1);
+  makeList2(tasks2);
+  makeList3(tasks3);
+}
+
+function makeList1(tasks) {
+
+  $('#qz_list1').empty();
+  if (tasks.length <= 0) {
+    $('#qz_list1').append('<div class="weui-loadmore weui-loadmore_line">\n' +
+        '    <span class="weui-loadmore__tips">暂无数据</span>\n' +
+        '</div>');
+  }
+  for (let i = 0; i < tasks.length; i++) {
+    let task = tasks[i];
+    $('#qz_list1').append($('<a href="javascript:itemSelect(' + task.taskId + ');" class="weui-media-box weui-media-box_appmsg">\n' +
+        '                            <div class="weui-media-box__bd">\n' +
+        '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
+        '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
+        '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
+        '                                </div>\n' +
+        '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
+        '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
+        '                            </div>\n' +
+        '                        </a>'));
+  }
+}
+
+function makeList2(tasks) {
+
+  $('#qz_list2').empty();
+  if (tasks.length <= 0) {
+    $('#qz_list2').append('<div class="weui-loadmore weui-loadmore_line">\n' +
+        '    <span class="weui-loadmore__tips">暂无数据</span>\n' +
+        '</div>');
+  }
+  for (let i = 0; i < tasks.length; i++) {
+    let task = tasks[i];
+    $('#qz_list2').append($('<a href="javascript:itemSelect(' + task.taskId + ');" class="weui-media-box weui-media-box_appmsg">\n' +
+        '                            <div class="weui-media-box__bd">\n' +
+        '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
+        '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
+        '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
+        '                                </div>\n' +
+        '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
+        '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
+        '                            </div>\n' +
+        '                        </a>'));
+  }
+}
+
+function makeList3(tasks) {
+
+  $('#qz_list3').empty();
+  if (tasks.length <= 0) {
+    $('#qz_list3').append('<div class="weui-loadmore weui-loadmore_line">\n' +
+        '    <span class="weui-loadmore__tips">暂无数据</span>\n' +
+        '</div>');
+  }
+  for (let i = 0; i < tasks.length; i++) {
+    let task = tasks[i];
+    $('#qz_list3').append($('<a href="javascript:itemSelect(' + task.taskId + ');" class="weui-media-box weui-media-box_appmsg">\n' +
+        '                            <div class="weui-media-box__bd">\n' +
+        '                                <div style="display: flex; flex-direction: row; justify-content: space-between;">\n' +
+        '                                    <p class="weui-media-box__desc">' + task.houseNumber + '</p>\n' +
+        '                                    <p class="weui-media-box__desc">' + '2020-02-02 14:30' + '</p>\n' +
+        '                                </div>\n' +
+        '                                <h4 class="weui-media-box__title">' + task.taskTitle + '</h4>\n' +
+        '                                <p class="weui-media-box__desc">' + task.remark + '</p>\n' +
+        '                            </div>\n' +
+        '                        </a>'));
+  }
+}
+
+function itemSelect(taskId) {
+  window.location.href = "/yeweihui/qiuzhudetail.html?taskId=" + taskId;
 }

+ 92 - 0
whepi-ui/templates/yeweihui/qiuzhuDetail.ftl

@@ -0,0 +1,92 @@
+<#assign title="求助详情"/>
+<#include "/home/frag.head.ftl" />
+
+<div class="weui-tab">
+
+    <div class="weui-btn-area">
+
+        <h4 class="weui-media-box__title">求助标题</h4>
+        <p class="weui-media-box__desc">${ task.taskTitle }</p>
+        <br>
+        <h4 class="weui-media-box__title">求助对象</h4>
+        <p class="weui-media-box__desc">${ task.taskTarget }</p>
+        <br>
+        <h4 class="weui-media-box__title">求助内容</h4>
+        <p class="weui-media-box__desc">${ task.remark }</p>
+        <br>
+        <#if task.taskStatus == 1>
+            <div class="weui-btn-area">
+                <a class="weui-btn weui-btn_primary" href="javascript:doTask();">响应</a>
+            </div>
+        </#if>
+        <#if task.taskStatus == 2>
+            <div style="display: flex; justify-content: center;">
+                <h4 class="weui-media-box__title">处理中</h4>
+            </div>
+        </#if>
+        <#if task.taskStatus == 3>
+            <div style="display: flex; justify-content: center;">
+                <h4 class="weui-media-box__title">已处理完成</h4>
+            </div>
+        </#if>
+    </div>
+
+    <div id="qz_showPop" class="weui-popup__container popup-bottom">
+        <div class="weui-popup__overlay"></div>
+        <div class="weui-popup__modal">
+            <div class="weui-btn-area">
+                <div style="display:flex; flex-direction: row; justify-content: space-between;">
+                    <div style="width: 80%;"></div>
+                    <a class="weui-btn weui-btn_primary" style="margin-bottom: 3vh;" href="javascript:close();">关闭</a>
+            </div>
+                <textarea id="qz_content" class="weui-textarea" placeholder="请输入文本" rows="5"></textarea>
+                <a class="weui-btn weui-btn_primary" style="margin-top: 3vh;margin-bottom: 5vh;" href="javascript:send();">提交</a>
+            </div>
+        </div>
+    </div>
+</div>
+
+<#include "/home/frag.foot.ftl" />
+
+<script>
+    var task = ${taskJson};
+
+    (function ($) {
+
+        console.log('详情页' + task);
+
+    })(jQuery);
+
+    function doTask() {
+        $("#qz_showPop").popup();
+    }
+
+    function close() {
+        $.closePopup();
+    }
+
+    function send() {
+
+        let qzcontent = $('#qz_content').val();
+        if (qzcontent.length <= 0){
+            alert("请输入内容");
+            return;
+        }
+
+        $.ajax({
+            url: '/yeweihui/qiuzhu/reply.json',
+            type: 'post',
+            data: {
+                userId: task.userId,
+                taskId: task.taskId,
+                replyContent: qzcontent
+            },
+            success: function (data) {
+                $.closePopup();
+            },
+            error: function () {
+                $.alert("网络异常");
+            }
+        });
+    }
+</script>

+ 10 - 0
whepi-web/src/main/java/com/bofeng/dao/MsReportMapper.java

@@ -2,10 +2,20 @@ package com.bofeng.dao;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.bofeng.entity.MsReport;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 /**
  * @Author: xielianghe
  * @Date: 2020/2/4 15:45
  */
+@Mapper
+@Repository
 public interface MsReportMapper extends BaseMapper<MsReport> {
+
+    List<MsReport> selectByReportDate(@Param("reportDate") String reportDate);
+
 }

+ 6 - 0
whepi-web/src/main/java/com/bofeng/dao/MsSuspectedMapper.java

@@ -2,10 +2,14 @@ package com.bofeng.dao;
 
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.bofeng.entity.MsReport;
 import com.bofeng.entity.MsSuspected;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * @Author: xielianghe
  * @Date: 2020/2/4 15:39
@@ -13,4 +17,6 @@ import org.springframework.stereotype.Repository;
 @Mapper
 @Repository
 public interface MsSuspectedMapper extends BaseMapper<MsSuspected> {
+
+    List<MsSuspected> selectByReportId(@Param("reportId") Long reportId);
 }

+ 7 - 1
whepi-web/src/main/java/com/bofeng/dao/QzTaskDao.java

@@ -14,5 +14,11 @@ public interface QzTaskDao extends BaseMapper<QzTask> {
 
   List<QzTask> selectAll();
 
-  List<QzTask> queryQzTask();
+    QzTask queryByTaskId(Long taskId);
+
+    List<QzTask> queryByHouseNumber(@Param("houseNumber") String houseNumber, @Param("status") Integer status);
+
+    Integer updateStatusById(@Param("taskId") Long taskId, @Param("status") Integer status);
+
+    List<QzTask> queryQzTask();
 }

+ 2 - 2
whepi-web/src/main/java/com/bofeng/dao/QzTaskReplyDao.java

@@ -1,7 +1,6 @@
 package com.bofeng.dao;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
-import com.bofeng.entity.QzTask;
 import com.bofeng.entity.QzTaskReply;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
@@ -10,7 +9,8 @@ import java.util.List;
 
 @Mapper
 @Repository
-public interface QzTaskReplyDao extends BaseMapper<QzTask> {
+public interface QzTaskReplyDao extends BaseMapper<QzTaskReply> {
 
   List<QzTaskReply> taskQuery();
+
 }

+ 5 - 0
whepi-web/src/main/java/com/bofeng/entity/MsReport.java

@@ -9,6 +9,8 @@ import lombok.Getter;
 import lombok.Setter;
 import org.joda.time.DateTime;
 
+import java.util.Date;
+
 /**
  * @Author: xielianghe
  * @Date: 2020/2/4 14:54
@@ -33,6 +35,9 @@ public class MsReport {
     @TableField("remarks")
     private String remarks;
 
+    @TableField("report_date")
+    private Date reportDate;
+
     @TableField("ms_status")
     private Integer msStatus;
 

+ 4 - 1
whepi-web/src/main/java/com/bofeng/entity/MsSuspected.java

@@ -24,6 +24,9 @@ public class MsSuspected {
     @TableField("report_id")
     private Long reportId;
 
+    @TableField("user_name")
+    private String userName;
+
     @TableField("family_relative")
     private Integer familyRelative;
 
@@ -31,7 +34,7 @@ public class MsSuspected {
     private Integer medical;
 
     @TableField("condition_status")
-    private Integer conditionStatus;
+    private String conditionStatus;
 
     @TableField("remarks")
     private String remarks;

+ 40 - 27
whepi-web/src/main/java/com/bofeng/entity/QzTaskReply.java

@@ -1,9 +1,11 @@
 package com.bofeng.entity;
 
-import org.joda.time.DateTime;
+import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
+@Data
 public class QzTaskReply implements Serializable {
 
   /**
@@ -11,29 +13,40 @@ public class QzTaskReply implements Serializable {
    */
   private Long replyId;
 
-  private Long taskId;
-
-  private Long userId;
-
-  private String replyContent;
-
-  /**
-   * 新增人
-   */
-  private Long userCreate;
-
-  /**
-   * 新增时间
-   */
-  private DateTime timeCreate;
-
-  /**
-   * 修改人
-   */
-  private Long userUpdate;
-
-  /**
-   * 修改时间
-   */
-  private DateTime timeUpdate;
-}
+    /**
+     * 求助ID
+     */
+    private Long taskId;
+
+    /**
+     * 回复用户ID
+     */
+    private Long userId;
+
+    /**
+     * 回复内容
+     */
+    private String replyContent;
+
+    /**
+     * 新增人
+     */
+    private Long userCreate;
+
+    /**
+     * 新增时间
+     */
+    private Date timeCreate;
+
+    /**
+     * 修改人
+     */
+    private Long userUpdate;
+
+    /**
+     * 修改时间
+     */
+    private Date timeUpdate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 32 - 0
whepi-web/src/main/java/com/bofeng/service/MsReportService.java

@@ -1,9 +1,41 @@
 package com.bofeng.service;
 
 
+import com.bofeng.dao.MsReportMapper;
+import com.bofeng.dao.MsSuspectedMapper;
+import com.bofeng.entity.MsReport;
+import com.bofeng.entity.MsSuspected;
+import com.bofeng.entity.NotifyOpen;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
 /**
  * @Author: xielianghe
  * @Date: 2020/2/4 15:44
  */
+@Service
+@Transactional(readOnly = true)
 public class MsReportService {
+
+    @Autowired
+    private MsSuspectedMapper msSuspectedMapper;
+    @Autowired
+    private MsReportMapper msReportMapper;
+
+    public List<MsSuspected> getByDateNow() {
+        Date t = new Date();
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+        String reportDate = df.format(t);
+        List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate);
+        List<MsSuspected> listSuspected = null;
+        if (listReport != null && listReport.size() > 0) {
+            listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString()));
+        }
+        return listSuspected;
+    }
 }

+ 44 - 13
whepi-web/src/main/java/com/bofeng/service/MsSuspectedService.java

@@ -2,18 +2,21 @@ package com.bofeng.service;
 
 
 import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.bofeng.dao.MsReportMapper;
 import com.bofeng.dao.MsSuspectedMapper;
-import com.bofeng.dao.UserOpenMapper;
+import com.bofeng.entity.MsReport;
 import com.bofeng.entity.MsSuspected;
-import com.bofeng.entity.Owner;
-import com.bofeng.entity.UptownHome;
-import com.bofeng.entity.UserRole;
+import com.sun.org.apache.bcel.internal.generic.NEW;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
 /**
  * @Author: xielianghe
  * @Date: 2020/2/4 15:44
@@ -25,22 +28,50 @@ public class MsSuspectedService {
 
     @Autowired
     private MsSuspectedMapper msSuspectedMapper;
+    @Autowired
+    private MsReportMapper msReportMapper;
 
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public void addRibao(Long userId, Integer userType, String linkman, String phone) {
+    public void addSuspected(String userName, String conditionStatus, Integer medical, String remarks) {
+        Long reportId=0L;
+        //如果是当前日期 已经添加
+        Date t = new Date();
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+        String reportDate=df.format(t);
+        List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate);
+        if (listReport == null|| listReport.size()==0) {
+            MsReport msReport = new MsReport();
+            msReport.setReportId(IdWorker.getId());
+            msReport.setHouseId(0L);
+            msReport.setSafetyNum(0);
+            msReport.setSuspectedNum(0);
+            msReport.setRemarks("");
+            msReport.setReportDate(DateTime.now().toDate());
+            msReport.setMsStatus(0);
+            msReport.setUserCreate(0L);
+            msReport.setTimeCreate(DateTime.now());
+            msReport.setUserUpdate(0L);
+            msReport.setTimeUpdate(DateTime.now());
+            msReportMapper.insert(msReport);
+            reportId=msReport.getReportId();
+        }
+        else
+            reportId=listReport.get(0).getReportId();
+
+        //添加家人
         MsSuspected msSuspected = new MsSuspected();
         msSuspected.setSuspectedId(IdWorker.getId());
-        msSuspected.setReportId(userId);
-        msSuspected.setFamilyRelative(userType);
-        msSuspected.setConditionStatus(0);
-        msSuspected.setMedical(0);
-        msSuspected.setRemarks("测试");
-        msSuspected.setUserCreate(userId);
+        msSuspected.setReportId(reportId);
+        msSuspected.setUserName(userName);
+        msSuspected.setFamilyRelative(1);//默认为家人
+        msSuspected.setConditionStatus(conditionStatus);
+        msSuspected.setMedical(medical);
+        msSuspected.setRemarks(remarks);
+        msSuspected.setUserCreate(0L);
         msSuspected.setTimeCreate(DateTime.now());
-        msSuspected.setUserUpdate(userId);
+        msSuspected.setUserUpdate(0L);
         msSuspected.setTimeUpdate(DateTime.now());
         msSuspectedMapper.insert(msSuspected);
     }
-
 }

+ 24 - 5
whepi-web/src/main/java/com/bofeng/service/QzTaskReplyService.java

@@ -1,20 +1,39 @@
 package com.bofeng.service;
 
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.bofeng.dao.QzTaskDao;
 import com.bofeng.dao.QzTaskReplyDao;
 import com.bofeng.entity.QzTaskReply;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
 @Service
+@Transactional(readOnly = true)
 public class QzTaskReplyService {
 
-  @Autowired
-  private QzTaskReplyDao qzTaskReplyDao;
+    @Autowired
+    private QzTaskReplyDao qzTaskReplyDao;
 
-  public List<QzTaskReply> taskQuery() {
-    return qzTaskReplyDao.taskQuery();
+    @Autowired
+    private QzTaskDao qzTaskDao;
+
+    public List<QzTaskReply> taskQuery() {
+        return qzTaskReplyDao.taskQuery();
+
+    }
+
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+    public Integer insertQzTaskReply(QzTaskReply qzTaskReply) {
+
+        qzTaskDao.updateStatusById(qzTaskReply.getTaskId(), 2);
+
+        qzTaskReply.setReplyId(IdWorker.getId());
+
+        return qzTaskReplyDao.insert(qzTaskReply);
+    }
 
-  }
 }

+ 15 - 7
whepi-web/src/main/java/com/bofeng/service/QzTaskService.java

@@ -1,30 +1,38 @@
 package com.bofeng.service;
 
 import com.baomidou.mybatisplus.toolkit.IdWorker;
-import com.bofeng.JwtHelper;
 import com.bofeng.dao.QzTaskDao;
 import com.bofeng.entity.QzTask;
-import com.yvan.platform.JsonWapper;
 import lombok.var;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
 @Service
+@Transactional(readOnly = true)
 public class QzTaskService {
 
-  @Autowired
-  private QzTaskDao qzTaskDao;
+    @Autowired
+    private QzTaskDao qzTaskDao;
 
+    public List<QzTask> selectAll () {
+        return qzTaskDao.selectAll();
+    }
 
-  public List<QzTask> selectAll() {
-    return qzTaskDao.selectAll();
-  }
+    public List<QzTask> queryByHouseNumber (String houseNumber, Integer status) {
+        return qzTaskDao.queryByHouseNumber(houseNumber, status);
+    }
 
+    public QzTask queryByTaskId (Long taskId) {
+        return qzTaskDao.queryByTaskId(taskId);
+    }
 
   //求助的新增
+  @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
   public int addHelp(String taskTitle,String taskTarget,String remark) {
     var qzTak=new QzTask();
     qzTak.setTaskId(IdWorker.getId());

+ 5 - 5
whepi-web/src/main/java/com/bofeng/wx/controller/MsReportController.java

@@ -23,11 +23,11 @@ public class MsReportController {
 
     @PostMapping("/home/addRibao.json")
     public ModelAndView saveUser(HttpServletRequest request) {
-        Long userId = Long.parseLong(request.getParameter("userId"));
-        Integer userType = Integer.parseInt(request.getParameter("userType"));
-        String linkman = request.getParameter("linkman");
-        String phone = request.getParameter("phone");
-        msSuspectedService.addRibao(userId, userType, linkman, phone);
+        String userName = request.getParameter("userName");
+        String conditionStatus = request.getParameter("conditionStatus");
+        Integer medical = request.getParameter("medical").equals("on") ? 1 : 0;
+        String remarks = request.getParameter("remarks");
+        msSuspectedService.addSuspected(userName, conditionStatus, medical, remarks);
         return new ModelAndView("/home/home.ftl");
     }
 }

+ 72 - 0
whepi-web/src/main/java/com/bofeng/wx/controller/YeWeiHuiController.java

@@ -1,15 +1,22 @@
 package com.bofeng.wx.controller;
 
 import com.bofeng.entity.QzTask;
+import com.bofeng.entity.QzTaskReply;
 import com.bofeng.entity.SysUptownHouse;
+import com.bofeng.service.QzTaskReplyService;
 import com.bofeng.service.QzTaskService;
 import com.bofeng.service.RbService;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.Maps;
 import com.yvan.Model;
+import com.yvan.ModelOps;
+import com.yvan.mvc.Pd;
+import com.yvan.platform.JsonWapper;
 import com.yvan.platform.YvanUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -24,6 +31,9 @@ public class YeWeiHuiController {
     @Autowired
     private RbService rbService;
 
+    @Autowired
+    private QzTaskReplyService qzTaskReplyService;
+
     @GetMapping("/yeweihui/home.html")
     public ModelAndView yeweihui(ModelMap model) {
 
@@ -39,6 +49,68 @@ public class YeWeiHuiController {
         return new ModelAndView("/yeweihui/home.ftl", model);
     }
 
+    @GetMapping("/yeweihui/qiuzhudetail.html")
+    public ModelAndView qiuzhudetail(@Pd(name = "taskId") Long taskId, ModelMap model) throws JsonProcessingException {
+
+        QzTask task = qzTaskService.queryByTaskId(taskId);
+//        A业委会,B居委会,C物业,D志愿者
+        StringBuffer target = new StringBuffer();
+        if (task.getTaskTarget().equals("A")) {
+            target.append("业委会");
+        }
+        else if (task.getTaskTarget().equals("B")) {
+            if (target.length() > 0) {
+                target.append("、居委会");
+            }
+            else {
+                target.append("居委会");
+            }
+        }
+        else if (task.getTaskTarget().equals("C")) {
+            if (target.length() > 0) {
+                target.append("、物业");
+            }
+            else {
+                target.append("物业");
+            }
+        }
+        else if (task.getTaskTarget().equals("D")) {
+            if (target.length() > 0) {
+                target.append("、志愿者");
+            }
+            else {
+                target.append("志愿者");
+            }
+        }
+
+        task.setTaskTarget(target.toString());
+
+        model.put("taskJson", new JsonWapper(task));
+        model.put("task", task);
+
+        return new ModelAndView("/yeweihui/qiuzhudetail.ftl", model);
+    }
+
+    @PostMapping("/yeweihui/qiuzhu/reply.json")
+    public ModelOps replyQiuzhu(QzTaskReply qzTaskReply) {
+
+        Integer success = qzTaskReplyService.insertQzTaskReply(qzTaskReply);
+
+        if (success > 0) {
+            return ModelOps.newSuccess();
+        }
+        else {
+            return ModelOps.newFail("操作失败");
+        }
+    }
+
+    @PostMapping("/yeweihui/qiuzhu/list.json")
+    public Model queryByHouseNumber(@Pd(name = "houseNumber") String houseNumber, @Pd(name = "status") Integer status) {
+        List<QzTask> list = qzTaskService.queryByHouseNumber(houseNumber, status);
+
+        return Model.newSuccess(list);
+    }
+
     @GetMapping("/yeweihui/ribao.html")
     public ModelAndView yeweihuiRibao(ModelMap model) {
 

+ 1 - 1
whepi-web/src/main/resources/application.yml

@@ -43,7 +43,7 @@ endpoints:
 #  whitelabel.enabled: false
 
 spring:
-  profiles.active: guojing
+  profiles.active: lll
 
   application:
     name: whepi-web

+ 123 - 0
whepi-web/src/main/resources/generator/QzTaskReplyDao.xml

@@ -0,0 +1,123 @@
+<?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.bofeng.generator.QzTaskReplyDao">
+  <resultMap id="BaseResultMap" type="com.bofeng.generator.QzTaskReply">
+    <id column="reply_id" jdbcType="BIGINT" property="replyId" />
+    <result column="task_id" jdbcType="BIGINT" property="taskId" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="reply_content" jdbcType="VARCHAR" property="replyContent" />
+    <result column="user_create" jdbcType="BIGINT" property="userCreate" />
+    <result column="time_create" jdbcType="TIMESTAMP" property="timeCreate" />
+    <result column="user_update" jdbcType="BIGINT" property="userUpdate" />
+    <result column="time_update" jdbcType="TIMESTAMP" property="timeUpdate" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    reply_id, task_id, user_id, reply_content, user_create, time_create, user_update, 
+    time_update
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from qz_task_reply
+    where reply_id = #{replyId,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from qz_task_reply
+    where reply_id = #{replyId,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" keyColumn="reply_id" keyProperty="replyId" parameterType="com.bofeng.generator.QzTaskReply" useGeneratedKeys="true">
+    insert into qz_task_reply (task_id, user_id, reply_content, 
+      user_create, time_create, user_update, 
+      time_update)
+    values (#{taskId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{replyContent,jdbcType=VARCHAR}, 
+      #{userCreate,jdbcType=BIGINT}, #{timeCreate,jdbcType=TIMESTAMP}, #{userUpdate,jdbcType=BIGINT}, 
+      #{timeUpdate,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" keyColumn="reply_id" keyProperty="replyId" parameterType="com.bofeng.generator.QzTaskReply" useGeneratedKeys="true">
+    insert into qz_task_reply
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="taskId != null">
+        task_id,
+      </if>
+      <if test="userId != null">
+        user_id,
+      </if>
+      <if test="replyContent != null">
+        reply_content,
+      </if>
+      <if test="userCreate != null">
+        user_create,
+      </if>
+      <if test="timeCreate != null">
+        time_create,
+      </if>
+      <if test="userUpdate != null">
+        user_update,
+      </if>
+      <if test="timeUpdate != null">
+        time_update,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="taskId != null">
+        #{taskId,jdbcType=BIGINT},
+      </if>
+      <if test="userId != null">
+        #{userId,jdbcType=BIGINT},
+      </if>
+      <if test="replyContent != null">
+        #{replyContent,jdbcType=VARCHAR},
+      </if>
+      <if test="userCreate != null">
+        #{userCreate,jdbcType=BIGINT},
+      </if>
+      <if test="timeCreate != null">
+        #{timeCreate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="userUpdate != null">
+        #{userUpdate,jdbcType=BIGINT},
+      </if>
+      <if test="timeUpdate != null">
+        #{timeUpdate,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bofeng.generator.QzTaskReply">
+    update qz_task_reply
+    <set>
+      <if test="taskId != null">
+        task_id = #{taskId,jdbcType=BIGINT},
+      </if>
+      <if test="userId != null">
+        user_id = #{userId,jdbcType=BIGINT},
+      </if>
+      <if test="replyContent != null">
+        reply_content = #{replyContent,jdbcType=VARCHAR},
+      </if>
+      <if test="userCreate != null">
+        user_create = #{userCreate,jdbcType=BIGINT},
+      </if>
+      <if test="timeCreate != null">
+        time_create = #{timeCreate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="userUpdate != null">
+        user_update = #{userUpdate,jdbcType=BIGINT},
+      </if>
+      <if test="timeUpdate != null">
+        time_update = #{timeUpdate,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where reply_id = #{replyId,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bofeng.generator.QzTaskReply">
+    update qz_task_reply
+    set task_id = #{taskId,jdbcType=BIGINT},
+      user_id = #{userId,jdbcType=BIGINT},
+      reply_content = #{replyContent,jdbcType=VARCHAR},
+      user_create = #{userCreate,jdbcType=BIGINT},
+      time_create = #{timeCreate,jdbcType=TIMESTAMP},
+      user_update = #{userUpdate,jdbcType=BIGINT},
+      time_update = #{timeUpdate,jdbcType=TIMESTAMP}
+    where reply_id = #{replyId,jdbcType=BIGINT}
+  </update>
+</mapper>

+ 7 - 0
whepi-web/src/main/resources/mapper/MsReport.xml

@@ -0,0 +1,7 @@
+<?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.bofeng.dao.MsReportMapper">
+    <select id="selectByReportDate" resultType="com.bofeng.entity.MsReport">
+        select * from ms_report where report_date = #{reportDate}
+    </select>
+</mapper>

+ 7 - 0
whepi-web/src/main/resources/mapper/MsSuspected.xml

@@ -0,0 +1,7 @@
+<?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.bofeng.dao.MsSuspectedMapper">
+    <select id="selectByReportId" resultType="com.bofeng.entity.MsSuspected">
+        select * from ms_report where report_id = #{reportId}
+    </select>
+</mapper>

+ 12 - 0
whepi-web/src/main/resources/mapper/QzTaskDao.xml

@@ -5,8 +5,20 @@
     select * from qz_task
   </select>
 
+  <select id="queryByTaskId" resultType="com.bofeng.entity.QzTask">
+    select * from qz_task where task_id=#{taskId}
+  </select>
+
+  <select id="queryByHouseNumber" resultType="com.bofeng.entity.QzTask">
+    select * from qz_task where task_status=#{status} and house_number like concat('%', #{houseNumber}, '%')
+  </select>
+
+  <update id="updateStatusById">
+    update qz_task set task_status=#{status} where task_id=#{taskId}
+  </update>
 
     <select id="queryQzTask" resultType="com.bofeng.entity.QzTask">
     select * from qz_task order by time_update desc
     </select>
+
 </mapper>