Bläddra i källkod

Merge remote-tracking branch 'origin/master'

guojing 5 år sedan
förälder
incheckning
0fc1ef7ede

+ 9 - 2
whepi-ui/templates/home/ribao.js

@@ -302,7 +302,7 @@ function ribao_cell(v) {
   var scoreRezult = "";
   if (v.scoreRezult != 0)
     scoreRezult = "评估结果:" + getScoreRezult(v.scoreRezult, v.temperatureScore) + ";";
-  $('#rb_family').append($('<div class="weui-media-box weui-media-box_text" style="height: 12vh">\n' +
+  $('#rb_family').append($('<div class="weui-media-box weui-media-box_text" style="height: 15vh">\n' +
     '                                      <h4 class="weui-media-box__title">' + userName + '&nbsp;&nbsp;&nbsp;' + grender + '&nbsp;&nbsp;&nbsp;' + age + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style="color: #bc4246" onclick=\'deleteSuspected(' + JSON.stringify(v.suspectedId) + ')\'>删除</a>\n' +
     '                                      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style="color: #2a62bc" onclick=\'updateSuspected(' + JSON.stringify(v.suspectedId) + ')\'>修改</a></h4>\n' +
     '                                      <p class="weui-media-box__desc" style="height: 80%">' + familyStatus + medical + singleRoom + temperature + cough + muscle + dyspnea + fatigue + diarrhea + others + scoreRezult + '</p>\n' +
@@ -382,6 +382,11 @@ function ribaoCommit() {
     $.alert("心脑血管不能同时选择服用和未服用");
     return;
   }
+  //男性不能选择妊娠期
+  if ( $("#js_input_user_sex").attr("data-values")==1 && $("input[name='checkbox7']:checked").val() == "on") {
+    $.alert("男性不能选择妊娠期");
+    return;
+  }
   //家庭状态
   var familyStatus = "";
   if ($("input[name='checkbox1']:checked").val() == "on")
@@ -703,7 +708,7 @@ function helpValue1(v) {
   var scoreRezult = "";
   if (v.scoreRezult != 0)
     scoreRezult = "评估结果:" + getScoreRezult(v.scoreRezult, v.temperatureScore) + ";";
-  $('#ribao_famliy').append($('<div class="weui-media-box weui-media-box_text" style="height: 12vh">\n' +
+  $('#ribao_famliy').append($('<div class="weui-media-box weui-media-box_text" style="height: 15vh">\n' +
     '                                      <h4 class="weui-media-box__title">' + userName + '&nbsp;&nbsp;&nbsp;' + grender + '&nbsp;&nbsp;&nbsp;' + age + '</h4>\n' +
     '                                      <p class="weui-media-box__desc" style="height: 80%">' + familyStatus + medical + singleRoom + temperature + cough + muscle + dyspnea + fatigue + diarrhea + others + scoreRezult + '</p>\n' +
     '                                    </div>\n' +
@@ -866,6 +871,7 @@ $('#ribao_score').on('click', function () {
   var suspectedId = $("#suspectedId").val();
   var userId = $("#userId").val();
   var userName = $("#js_input_user_name").val();
+  var medical = $("#switchQuezhen").attr("data-values") == undefined ? 0 : $("#switchQuezhen").attr("data-values");
   var temperature = $("#js_input_user_tiwen").val() == "" ? 0 : $("#js_input_user_tiwen").val();
   var cough = $("#js_input_user_kesou").attr("data-values") == undefined ? 0 : $("#js_input_user_kesou").attr("data-values");
   var muscle = $("#js_input_user_jirou").attr("data-values") == undefined ? 0 : $("#js_input_user_jirou").attr("data-values");
@@ -892,6 +898,7 @@ $('#ribao_score').on('click', function () {
       "userName": userName,
       "suspectedId": suspectedId,
       "userCreate": userId,
+      "medical": medical,
       "temperature": temperature,
       "cough": cough,
       "muscle": muscle,

+ 25 - 13
whepi-web/src/main/java/com/bofeng/controller/WxUserOpenController.java

@@ -1,10 +1,7 @@
 package com.bofeng.controller;
 
 import com.bofeng.dao.UserRoleMapper;
-import com.bofeng.entity.OwnerLinkman;
-import com.bofeng.entity.UptownHome;
-import com.bofeng.entity.UserOpen;
-import com.bofeng.entity.UserRole;
+import com.bofeng.entity.*;
 import com.bofeng.service.HomeService;
 import com.bofeng.service.WxUserOpenService;
 import com.yvan.Model;
@@ -154,30 +151,45 @@ public class WxUserOpenController {
         return Model.newSuccess(wxUserOpenService.queryFamily(userId));
     }
 
+    @ApiOperation("创建业委会资格")
+    @PostMapping("/userOpen/createYWHRule")
+    public Model<Long> createYWHRule(JsonWapper jsonWapper) throws Exception {
+        Long userId = jsonWapper.asObject(Long.class, "userId");
+        if (userId == null || userId == 0L) {
+            return Model.newFail("用户不存在");
+        }
+        //成功返回用户Id
+        try {
+            return Model.newSuccess(wxUserOpenService.createYWHRule(userId));
+        } catch (Exception e) {
+            return Model.newFail(e.getMessage());
+        }
+    }
+
     @ApiOperation("创建业委会角色、成员信息")
     @PostMapping("/userOpen/createYWH")
     public Model<Long> createYWH(JsonWapper jsonWapper) throws Exception {
         Long uptownId = jsonWapper.asObject(Long.class, "uptownId");
         Long userId = jsonWapper.asObject(Long.class, "userId");
-        List<OwnerLinkman> lstOwnerMan = new ArrayList<>();
-        OwnerLinkman ownerLinkman;
+        List<Owner> lstOwner = new ArrayList<>();
+        Owner owner;
         if (uptownId == null || uptownId == 0L) {
             return Model.newFail("请选择所在小区");
         }
         for (int i = 0; i < jsonWapper.asList("lstOwner").size(); i++) {
             Map<String, Object> mm = (Map) jsonWapper.asList("lstOwner").get(i);
-            ownerLinkman = new OwnerLinkman();
-            ownerLinkman.setLinkman(mm.get("linkman").toString());
-            ownerLinkman.setPhone(mm.get("phone").toString());
-            ownerLinkman.setType(Long.parseLong(mm.get("type").toString()));
-            lstOwnerMan.add(ownerLinkman);
+            owner = new Owner();
+            owner.setLinkman(mm.get("linkman").toString());
+            owner.setPhone(mm.get("phone").toString());
+            owner.setType(Long.parseLong(mm.get("type").toString()));
+            lstOwner.add(owner);
         }
-        if (lstOwnerMan == null || lstOwnerMan.size() == 0) {
+        if (lstOwner == null || lstOwner.size() == 0) {
             return Model.newFail("请增加业委会成员");
         }
         //成功返回用户Id
         try {
-            return Model.newSuccess(wxUserOpenService.createYWH(userId, uptownId, lstOwnerMan));
+            return Model.newSuccess(wxUserOpenService.createYWH(userId, uptownId, lstOwner));
         } catch (Exception e) {
             return Model.newFail(e.getMessage());
         }

+ 3 - 0
whepi-web/src/main/java/com/bofeng/dao/OwnerMapper.java

@@ -15,4 +15,7 @@ public interface OwnerMapper extends BaseMapper<Owner> {
 
     @Select("select * from sys_owner where uptown_id = #{uptownId}")
     List<Owner> getOwnerByUptownId(@Param("uptownId") Long uptownId);
+
+    @Select("select * from sys_owner where phone = #{phone}")
+    List<Owner> getOwnerByPhone(@Param("phone") String phone);
 }

+ 11 - 1
whepi-web/src/main/java/com/bofeng/dao/RbMapper.java

@@ -60,7 +60,7 @@ public interface RbMapper extends BaseMapper<sysUptownUnit> {
     Map<String, Integer> selectyicahng(@Param("uptownId") Long uptownId, @Param("date") String date);
 
     @Select(
-            "select sum(a.safety_num) AS safetyNum, sum(suspected_num) as suspectedNum\n" +
+            "select sum(suspected_num) as suspectedNum\n" +
                     ", count(a.report_id) as reportCount\n" +
                     "from ms_report a \n" +
                     "INNER JOIN sys_uptown_house b ON a.house_id = b.house_id\n" +
@@ -70,6 +70,16 @@ public interface RbMapper extends BaseMapper<sysUptownUnit> {
     Map<String, Integer> selecthuiz(@Param("uptownId") Long uptownId, @Param("date") String date);
 
     @Select(
+            "select count(0) AS safetyNum\n" +
+                    "from sys_uptown_house suh\n" +
+                    "inner join sys_uptown_home suho on suho.house_id=suh.house_id\n" +
+                    "INNER JOIN sys_uptown_unit suu ON suu.unit_id = suh.unit_id and suu.uptown_id = #{uptownId}\n" +
+                    "left join ms_report msr on msr.house_id = suh.house_id and msr.report_date = #{date}\n" +
+                    "left join ms_suspected mss on mss.report_id=msr.report_id"
+    )
+    Map<String, Integer> selecthuizong(@Param("uptownId") Long uptownId, @Param("date") String date);
+
+    @Select(
             "select suu.ridgepole,suu.unit,suh.doorplate,suho.linkman,suho.phone,msr.safety_num as safetyNum, \n" +
                     "msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum, \n" +
                     "msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,\n" +

+ 7 - 0
whepi-web/src/main/java/com/bofeng/dao/SysUptownUnitMapper.java

@@ -1,13 +1,20 @@
 package com.bofeng.dao;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.bofeng.entity.UptownUnit;
 import com.bofeng.entity.sysUptownUnit;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
 @Repository
 public interface SysUptownUnitMapper extends BaseMapper<sysUptownUnit> {
 
+    @Select("select * from sys_uptown_unit where status = 1 and unit_id = #{unitId}")
+    List<UptownUnit> selectByUnitId(@Param("unitId") Long unitId);
 
 }

+ 24 - 8
whepi-web/src/main/java/com/bofeng/entity/Owner.java

@@ -16,28 +16,44 @@ import java.util.Map;
 @TableName("sys_owner")
 public class Owner {
 
-    @TableId("owner_id")
+    @ApiModelProperty("业委会ID")
+    @TableId("OWNER_ID")
     private Long ownerId;
 
-    @TableField("uptown_id")
+    @ApiModelProperty("小区ID,下拉选ID")
+    @TableField("UPTOWN_ID")
     private Long uptownId;
 
-    @TableField("linkman")
+    @ApiModelProperty("类型:1负责人、2成员")
+    @TableField("TYPE")
+    private Long type;
+
+    @ApiModelProperty("用户id")
+    @TableField("USER_ID")
+    private Long userId;
+
+    @ApiModelProperty("联系人名称")
+    @TableField("LINKMAN")
     private String linkman;
 
-    @TableField("phone")
+    @ApiModelProperty("联系人电话")
+    @TableField("PHONE")
     private String phone;
 
-    @TableField("user_create")
+    @ApiModelProperty("新增人")
+    @TableField("USER_CREATE")
     private Long userCreate;
 
-    @TableField(exist = false)
+    @ApiModelProperty("新增时间")
+    @TableField("TIME_CREATE")
     private DateTime timeCreate;
 
-    @TableField("user_update")
+    @ApiModelProperty("修改人")
+    @TableField("USER_UPDATE")
     private Long userUpdate;
 
-    @TableField(exist = false)
+    @ApiModelProperty("修改时间")
+    @TableField("TIME_UPDATE")
     private DateTime timeUpdate;
 
     @TableField(exist = false)

+ 4 - 0
whepi-web/src/main/java/com/bofeng/entity/OwnerLinkman.java

@@ -25,6 +25,10 @@ public class OwnerLinkman {
     @TableField("TYPE")
     private Long type;
 
+    @ApiModelProperty("用户id")
+    @TableField("USER_ID")
+    private Long userId;
+
     @ApiModelProperty("联系人名称")
     @TableField("LINKMAN")
     private String linkman;

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

@@ -107,7 +107,7 @@ public class MsSuspectedService {
                 return 2L;
             //判断是否评估
             if (scoreRezult == 0) {
-                MsSuspected msSuspected1 = getScore(0L, userName, temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
+                MsSuspected msSuspected1 = getScore(0L, userName, medical,temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
                 if (msSuspected1 != null) {
                     scoreRezult = msSuspected1.getScoreRezult();
                     score = msSuspected1.getScore();
@@ -154,7 +154,7 @@ public class MsSuspectedService {
                         return 2L;
                 }
             }
-            MsSuspected msSuspected2 = getScore(suspectedId, userName, temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
+            MsSuspected msSuspected2 = getScore(suspectedId, userName, medical,temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
             if (msSuspected2 != null) {
                 scoreRezult = msSuspected2.getScoreRezult();
                 score = msSuspected2.getScore();
@@ -247,13 +247,13 @@ public class MsSuspectedService {
 
     //健康评估
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public MsSuspected getScore(Long susprectedId, String userName, BigDecimal temperature, Integer cough, Integer muscle, Integer dyspnea, Integer fatigue, Integer diarrhea, Long userCreate) {
+    public MsSuspected getScore(Long susprectedId, String userName, Integer medical, BigDecimal temperature, Integer cough, Integer muscle, Integer dyspnea, Integer fatigue, Integer diarrhea, Long userCreate) {
         MsSuspected msSuspected = new MsSuspected();
         msSuspected.setTemperatureScore(getTemperatureScore(temperature));
-        msSuspected.setScore(addScore(temperature, cough, muscle, dyspnea, fatigue, diarrhea));
+        msSuspected.setScore(addScore(medical, temperature, cough, muscle, dyspnea, fatigue, diarrhea));
         Integer scoreHistroy = msSuspectedMapper.selectUserNameScore(userCreate, userName, susprectedId);
         msSuspected.setScoreHistroy(scoreHistroy);
-        msSuspected.setScoreRezult(scoreRezulte(msSuspected.getScoreHistroy(), msSuspected.getScore()));
+        msSuspected.setScoreRezult(scoreRezulte(medical,msSuspected.getScoreHistroy(), msSuspected.getScore()));
         return msSuspected;
     }
 
@@ -277,41 +277,35 @@ public class MsSuspectedService {
 
     //获取总评分
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public Integer addScore(BigDecimal temperature, Integer cough, Integer muscle, Integer dyspnea, Integer fatigue, Integer diarrhea) {
-        Integer score = getTemperatureScore(temperature);
-        //咳嗽
-        score += cough;
-        //肌肉
-        score += muscle;
-        //肌肉
-        score += dyspnea;
-        //肌肉
-        score += fatigue;
-        //肌肉
-        score += diarrhea;
+    public Integer addScore(Integer medical, BigDecimal temperature, Integer cough, Integer muscle, Integer dyspnea, Integer fatigue, Integer diarrhea) {
+        Integer score = 0;
+
+        if (medical == 0) {
+            //温度
+            score += getTemperatureScore(temperature);
+            //咳嗽
+            score += cough;
+            //肌肉
+            score += muscle;
+            //肌肉
+            score += dyspnea;
+            //肌肉
+            score += fatigue;
+            //肌肉
+            score += diarrhea;
+        } else
+            score = 5;
         return score;
     }
 
     //评估结果
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public Integer scoreRezulte(Integer scoreHistory, Integer score) {
+    public Integer scoreRezulte(Integer medical, Integer scoreHistory, Integer score) {
         Integer scoreRezult = 0;
-        //判断用户是否含有历史评分
-        if (scoreHistory == null) {
-            //判断结果
-            if (score < 1)
-                scoreRezult = 1;
-            if (score >= 1 && score <= 3)
-                scoreRezult = 2;
-            if (score == 4)
-                scoreRezult = 3;
-            if (score > 4)
-                scoreRezult = 4;
-
-        } else {
-            if (score - scoreHistory >= 3)
-                return 4;
-            else {
+        if (medical == 0) {
+            //判断用户是否含有历史评分
+            if (scoreHistory == null) {
+                //判断结果
                 if (score < 1)
                     scoreRezult = 1;
                 if (score >= 1 && score <= 3)
@@ -320,8 +314,23 @@ public class MsSuspectedService {
                     scoreRezult = 3;
                 if (score > 4)
                     scoreRezult = 4;
+
+            } else {
+                if (score - scoreHistory >= 3)
+                    return 4;
+                else {
+                    if (score < 1)
+                        scoreRezult = 1;
+                    if (score >= 1 && score <= 3)
+                        scoreRezult = 2;
+                    if (score == 4)
+                        scoreRezult = 3;
+                    if (score > 4)
+                        scoreRezult = 4;
+                }
             }
-        }
+        } else
+            scoreRezult = 4;
         return scoreRezult;
     }
 }

+ 182 - 34
whepi-web/src/main/java/com/bofeng/service/WxUserOpenService.java

@@ -72,6 +72,10 @@ public class WxUserOpenService {
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public Long createFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone) throws Exception {
+        /** 创建家庭用户
+         *  1.家庭用户填写电话号码后和ownerlinkman中该小区的电话做比对,如有则自动添加业委会成员角色
+         *  2.
+         * */
         Long sysUserId = queryUser(userId);
 
         //判断该用户是否已经创建了家庭用户角色
@@ -82,7 +86,7 @@ public class WxUserOpenService {
         if (lstUserRole.size() > 0) {
             for (UserRole item : lstUserRole) {
                 if (item.getRoleId() == 1L) {
-                    throw new Exception("家庭用户角色已存在");   //todo 暂时只允许一个用户角色绑定一个家庭门牌号
+                    throw new Exception("家庭用户角色已存在,请使用编辑功能");   //todo 暂时只允许一个用户角色绑定一个家庭门牌号
                 }
             }
         }
@@ -108,6 +112,10 @@ public class WxUserOpenService {
             throw new Exception("创建门牌失败!");
         }
         userRole.setPropertyId(uptownHouse.getHouseId());   //绑定家庭用户角色的门牌id
+        List<UptownHome> list = uptownHomeMapper.getUptownHomeByPhone(phone);
+        if (list.size() > 0) {
+            throw new Exception("该电话号码已被其他家庭用户注册使用!");
+        }
         //判断该门牌是否存在家庭信息
         List<UptownHome> lstUptownHome = uptownHomeMapper.getUptownHomeBy(uptownHouse.getHouseId());
         if (lstUptownHome.size() > 0) {
@@ -126,13 +134,135 @@ public class WxUserOpenService {
             throw new Exception("创建家庭信息失败!");
         }
         userRoleMapper.insert(userRole);
+        /** 判断是否增加业委会角色
+         *  新增时根据所填家庭电话号码,去linkman表去找,如果存在且业委会小区和当前小区一致,则添加业委会角色
+         *  找linkman的phone
+         * */
+        //查询小区id
+        List<UptownUnit> lstUnit = sysUptownUnitMapper.selectByUnitId(unitId);
+        if (lstUnit == null) {
+            throw new Exception("小区不存在!");
+        }
+        if (lstUnit.size() != 1) {
+            throw new Exception("小区数据异常!");
+        }
+        int phoneCount = 0;
+        List<Owner> lstOwner = ownerMapper.getOwnerByUptownId(lstUnit.get(0).getUptownId());
+        for (Owner item : lstOwner) {
+            if (item.getPhone().equals(phone)) {
+                phoneCount++;
+            }
+        }
+        if (phoneCount > 1) {
+            throw new Exception("电话号码在该小区业委会中存在多条记录,请联系客服!");
+        }
+        if (phoneCount == 1) {
+            //如果是小区业委会成员,绑定业委会成员和用户id,新增业委会角色
+            List<Owner> lst = ownerMapper.getOwnerByPhone(phone);
+            if (lst == null) {
+                throw new Exception("业委会联系电话数据异常");
+            }
+            if (lst.size() != 1) {
+                throw new Exception("业委会联系电话数据重复");
+            }
+            if (lst.get(0).getUptownId() != lstUnit.get(0).getUptownId()) {
+                throw new Exception("联系电话和所在小区不匹配");
+            }
+            lst.get(0).setUserId(sysUserId);
+            lst.get(0).setUserUpdate(sysUserId);
+            ownerMapper.updateById(lst.get(0));
+
+            //增加业委会成员角色
+            UserRole userRoleYWH = new UserRole();
+            userRoleYWH.setUrId(IdWorker.getId());
+            userRoleYWH.setUserId(sysUserId);
+            userRoleYWH.setUserUpdate(sysUserId);
+            userRoleYWH.setRoleId(2);   //业委会成员
+            userRoleYWH.setPropertyId(lst.get(0).getOwnerId());
+            userRoleMapper.insert(userRoleYWH);
+        }
 
         return userRole.getUrId();
     }
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public Long createYWH(Long userId, Long uptownId, List<OwnerLinkman> lstOwnerMan) throws Exception {
+    public Long createYWHRule(Long userId) throws Exception {
+        /** 创建业委会资格
+         *  1.当前用户有无家庭角色,无则退出
+         *  2.小区已有业委会,退出
+         * */
         Long sysUserId = queryUser(userId);
+        List<UserRole> lstUserRole = new ArrayList<>();
+        if (sysUserId > 0L) {
+            lstUserRole = userRoleMapper.getUserRoleByUserId(sysUserId);
+        }
+        boolean hasFamily = false;
+        Long myUptownId = 0L;
+        Long myOwnerId = 0L;
+        if (lstUserRole.size() > 0) {
+            //判断该用户是否创建了业委会的角色
+            for (UserRole item : lstUserRole) {
+                if (item.getRoleId() == 1L) {
+                    hasFamily = true;
+                    myUptownId = item.getPropertyId();
+                }
+                if (item.getRoleId() == 2L) {
+                    myOwnerId = item.getPropertyId();
+                }
+            }
+        }
+        if (!hasFamily) {
+            throw new Exception("请先完善家庭地址!");
+        }
+        if (myUptownId == 0L) {
+            throw new Exception("家庭地址中尚未选择小区!");
+        }
+        //判断业委会是否已经建立
+        List<Owner> lstSysOwner = ownerMapper.getOwnerByUptownId(myUptownId);
+        boolean hasOwner = false;
+        if (lstSysOwner != null && lstSysOwner.size() > 0) {
+            for (Owner item : lstSysOwner) {
+                if (item.getUserId() == sysUserId && item.getType() == 1) {
+                    //业委会负责人的绑定用户是自己
+                    hasOwner = true;
+                    break;
+                }
+            }
+            if (!hasOwner) {
+                throw new Exception("该小区已建立业委会");
+            }
+        }
+        List<OwnerLinkman> lstOwnerLinkman = ownerLinkmanMapper.getOwnerLinkmanByOwnerId(sysUserId);
+        if (lstOwnerLinkman == null) {
+            return 1L;
+            //throw new Exception("不是业委会成员!");
+        }
+        for (OwnerLinkman item : lstOwnerLinkman) {
+            if (item.getType() == 1) {
+                return 1L;  //业委会负责人可以编辑完善业委会信息
+            }
+        }
+        return 0L;
+    }
+
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+    public Long createYWH(Long userId, Long uptownId, List<Owner> lstOwner) throws Exception {
+        /** 创建业委会
+         *  0.流程上业委会负责人是第一个创建业委会的人
+         *  1.在创建业委会之前,必须有家庭用户角色?
+         *  2.小区已有业委会,不允许再创建业委会
+         *  3.小区已有业委会,其他人不允许再进此页面
+         *  4.业委会所在小区必须和当前用户的家庭用户所在小区一致
+         * */
+        Long sysUserId = queryUser(userId);
+        Long myUptownId = 0L;
+        if (uptownId <= 0L) {
+            throw new Exception("小区id为空!");
+        }
+        Uptown uptown = uptownMapper.selectById(uptownId);
+        if (uptown == null) {
+            throw new Exception("小区不存在!");
+        }
         //判断该用户是否已经创建了业委会角色
         List<UserRole> lstUserRole = new ArrayList<>();
         if (sysUserId > 0L) {
@@ -142,63 +272,80 @@ public class WxUserOpenService {
             //判断该用户是否创建了业委会的角色
             for (UserRole item : lstUserRole) {
                 if (item.getRoleId() == 2L) {
-                    throw new Exception("业委会用户角色已存在");   //todo 暂时只允许一个用户角色绑定一个业委会
+                    throw new Exception("业委会用户角色已存在!");   //todo 暂时只允许一个用户角色绑定一个业委会
+                }
+                if (item.getRoleId() == 1L) {
+                    myUptownId = item.getPropertyId();
                 }
             }
         }
+        if (myUptownId == 0L) {
+            throw new Exception("请先创建家庭用户!");
+        }
+        if (myUptownId != uptownId) {
+            throw new Exception("家庭所在小区和业委会所在小区不一致!");
+        }
         //创建业委会用户角色
         UserRole userRole = new UserRole();
         userRole.setUrId(IdWorker.getId());
         userRole.setUserId(sysUserId);
         userRole.setUserCreate(sysUserId);
         userRole.setUserUpdate(sysUserId);
-        userRole.setRoleId(2);  //业委会
+        userRole.setRoleId(2);  //业委会角色
+        userRole.setStatus(0);  //需后台审核后变更为1
 
         //判断业委会是否已经建立
-        List<Owner> lstOwner = new ArrayList<>();
-        Owner owner;
+        List<Owner> lstSysOwner;
         if (uptownId > 0L) {
-            lstOwner = ownerMapper.getOwnerByUptownId(uptownId);
-        }
-        if (lstOwner.size() > 0) {
-            //判断该用户是否创建了业委会
-            for (Owner item : lstOwner) {
-                if (item.getUptownId() == uptownId) {
-                    throw new Exception("该小区已建立业委会");
-                }
+            lstSysOwner = ownerMapper.getOwnerByUptownId(uptownId);
+            if (lstSysOwner != null && lstSysOwner.size() > 0) {
+                throw new Exception("该小区已建立业委会");
             }
         }
-        owner = new Owner();
-        owner.setOwnerId(IdWorker.getId());
-        owner.setUptownId(uptownId);
-        owner.setUserCreate(sysUserId);
-        owner.setUserUpdate(sysUserId);
-
-        userRole.setPropertyId(owner.getOwnerId()); //设置业委会id给角色
-        userRoleMapper.insert(userRole);
-
-        //建立业委会成员
-        if (lstOwnerMan == null) {
+        //建立业委会负责人和成员
+        if (lstOwner == null) {
             throw new Exception("请新增业委会成员");
         }
         int masterNum = 0;
-        for (OwnerLinkman item : lstOwnerMan) {
+        for (Owner item : lstOwner) {
             if (item.getType() == 1L) {
                 masterNum++;
             }
         }
+        if (masterNum == 0) {
+            throw new Exception("必须指定一个业委会负责人!");
+        }
         if (masterNum != 1) {
-            throw new Exception("业委会负责人只允许有一个");
+            throw new Exception("业委会负责人只允许有一个");
         }
-        for (OwnerLinkman item : lstOwnerMan) {
+        //判断业委会中的联系电话是否重复
+        List<String> lstPhone = new ArrayList<>();
+        for (Owner item : lstOwner) {
+            if (!lstPhone.contains(item.getPhone())) {
+                lstPhone.add(item.getPhone());
+            }
+        }
+        if (lstPhone.size() != lstOwner.size()) {
+            throw new Exception("联系电话有重复!");
+        }
+        for (Owner item : lstOwner) {
+            item.setOwnerId(IdWorker.getId());
+            item.setUptownId(uptownId);
+            item.setUserCreate(sysUserId);
+            item.setUserUpdate(sysUserId);
             if (item.getType() == 1L) {
-                owner.setLinkman(item.getLinkman());
-                owner.setPhone(item.getPhone());
+                item.setUserId(sysUserId);  //业委会负责人绑定用户
+                userRole.setPropertyId(item.getOwnerId()); //设置业委会id给角色的PropertyId
             }
-            item.setOwnerId(owner.getOwnerId());
-            ownerLinkmanMapper.insert(item);
+            //新增时还需判断业委会中是否已存在该电话号码
+            List<Owner> lst = ownerMapper.getOwnerByPhone(item.getPhone());
+            if (lst != null && lst.size() > 1) {
+                throw new Exception(item.getPhone() + "电话已被其他业委会使用!");
+            }
+            ownerMapper.insert(item);
         }
-        ownerMapper.insert(owner);
+        userRoleMapper.insert(userRole);
+        //业委会其他成员不创建userRole
 
         return userRole.getUrId();
     }
@@ -321,7 +468,8 @@ public class WxUserOpenService {
     }
 
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
-    public Long editFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String phone, Long urId) throws Exception {
+    public Long editFamily(Long userId, Long unitId, String doorPlate, String linkMan, Integer helpNum, String
+            phone, Long urId) throws Exception {
         Long sysUserId = queryUser(userId);
         if (urId == 0L) {
             throw new Exception("尚未建立家庭用户角色,无法编辑");

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

@@ -140,13 +140,14 @@ public class MsReportController {
         Long suspectedId = Conv.NL(request.getParameter("suspectedId"));
         String userName = request.getParameter("userName");
         Long userCreate = Conv.NL(request.getParameter("userCreate"));
+        Integer medical = Conv.NI(request.getParameter("medical"));
         BigDecimal temperature = new BigDecimal(request.getParameter("temperature"));
         Integer cough = Conv.NI(request.getParameter("cough"));
         Integer muscle = Conv.NI(request.getParameter("muscle"));
         Integer dyspnea = Conv.NI(request.getParameter("dyspnea"));
         Integer fatigue = Conv.NI(request.getParameter("fatigue"));
         Integer diarrhea = Conv.NI(request.getParameter("diarrhea"));
-        return msSuspectedService.getScore(suspectedId,userName,temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
+        return msSuspectedService.getScore(suspectedId,userName,medical,temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
     }
 
 }

+ 2 - 1
whepi-web/src/main/java/com/bofeng/wx/controller/YeWeiHuiController.java

@@ -204,6 +204,7 @@ public class YeWeiHuiController {
       Map<String, Integer> map1 = rbMapper.selecthuiz(upId, reportDate);
       Map<String, Integer> map2 = rbMapper.selectyicahng(upId, reportDate);
       Map<String, Integer> map3 = rbMapper.selecthuiz1(upId);
+      Map<String, Integer> map4 = rbMapper.selecthuizong(upId, reportDate);
 
       Map<String, Object> reMap = Maps.newHashMap();
       reMap.put("uptownName", uptowns.get(0).getUptownName());
@@ -211,7 +212,7 @@ public class YeWeiHuiController {
       nums.add(Conv.NI(map3.get("houseCount")));
       nums.add(Conv.NI(map1.get("reportCount")));
       nums.add(Conv.NI(map2.get("yichangCount")));
-      nums.add(Conv.NI(map1.get("safetyNum")));
+      nums.add(Conv.NI(map4.get("safetyNum")));
       nums.add(Conv.NI(map1.get("suspectedNum")));
       reMap.put("nums", nums);
       return Model.newSuccess(reMap);