Explorar el Código

Merge branch 'medicare' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into medicare

wangzhinan hace 3 años
padre
commit
c915eec8bf

+ 50 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MediicinecabinetInventory.java

@ -75,6 +75,24 @@ public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator im
     */
    private String orgCode;
    /**
     * 药品名称
     */
    private String drugName;
    /**
     * 货道容量,默认5
     */
    private String cargoCapacity;
    /**
     * 上下架状态,0下架,1上架、
     */
    private String shelfStatus;
    private String price;
    public MediicinecabinetInventory() {
    }
@ -173,4 +191,36 @@ public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator im
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getDrugName() {
        return drugName;
    }
    public void setDrugName(String drugName) {
        this.drugName = drugName;
    }
    public String getCargoCapacity() {
        return cargoCapacity;
    }
    public void setCargoCapacity(String cargoCapacity) {
        this.cargoCapacity = cargoCapacity;
    }
    public String getShelfStatus() {
        return shelfStatus;
    }
    public void setShelfStatus(String shelfStatus) {
        this.shelfStatus = shelfStatus;
    }
    public String getPrice() {
        return price;
    }
    public void setPrice(String price) {
        this.price = price;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinedevice.java

@ -135,7 +135,7 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator implements S
    /**
     * 状态
     * 状态    0缺货,,,,,1不缺货
     */
    private String status;

+ 35 - 6
common/common-entity/src/main/java/com/yihu/jw/entity/base/user/UserDO.java

@ -1,11 +1,15 @@
package com.yihu.jw.entity.base.user;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import com.yihu.jw.entity.equipment.WlyyUserAreaDO;
import com.yihu.jw.entity.equipment.WlyyUserEquipmentDO;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
/**
 * Entity - 后台管理员
@ -46,9 +50,9 @@ public class UserDO extends UuidIdentityEntityWithOperator {
     */
    private String ak;
    //是否可用
    private Boolean enabled;
    private Integer enabled;
    //是否锁定
    private Boolean locked;
    private Integer locked;
    //锁定时间
    private Date lockedDate;
    //最后登陆时间
@ -61,6 +65,31 @@ public class UserDO extends UuidIdentityEntityWithOperator {
    //平台角色标识(超管,租管,机管)
    private String roleId;
    //角色所属区域
    @Transient
    private List<WlyyUserAreaDO> area;
    @Transient
    private List<WlyyUserEquipmentDO> equipment;
    @Transient
    public List<WlyyUserEquipmentDO> getEquipment() {
        return equipment;
    }
    public void setEquipment(List<WlyyUserEquipmentDO> equipment) {
        this.equipment = equipment;
    }
    @Transient
    public List<WlyyUserAreaDO> getArea() {
        return area;
    }
    public void setArea(List<WlyyUserAreaDO> area) {
        this.area = area;
    }
    public UserDO(){}
    public UserDO(String username,String password,String mobile){
@ -151,20 +180,20 @@ public class UserDO extends UuidIdentityEntityWithOperator {
    }
    @Column(name = "enabled", nullable = false)
    public Boolean getEnabled() {
    public Integer getEnabled() {
        return enabled;
    }
    public void setEnabled(Boolean enabled) {
    public void setEnabled(Integer enabled) {
        this.enabled = enabled;
    }
    @Column(name = "locked", nullable = false)
    public Boolean getLocked() {
    public Integer getLocked() {
        return locked;
    }
    public void setLocked(Boolean locked) {
    public void setLocked(Integer locked) {
        this.locked = locked;
    }

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -183,6 +183,7 @@ public class BaseRequestMapping {
        public static final String getDeviceListByUserId  = "/getDeviceListByUserId";
        public static final String getUserListByDeviceId  = "/getUserListByDeviceId";
        public static final String getOutOfStockDeviceList  = "/getOutOfStockDeviceList";
        public static final String getOutOfStockDeviceListByUserId  = "/getOutOfStockDeviceListByUserId";
        public static final String getDevicesDeliveryList  = "/getDevicesDeliveryList";
        public static final String getDetialOutOfStock  = "/getDetialOutOfStock";
        public static final String getDevInventory  = "/getDevInventory";

+ 37 - 8
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDeviceEndpoint.java

@ -41,22 +41,38 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    @Value("${wechat.id}")
    private String wechatId;
    @PostMapping(value = BaseRequestMapping.BaseDevice.CREATE)
    @ApiOperation(value = "新增设备信息")
    public Envelop create(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        JSONObject jsonObject = null;
        String str = deviceService.createDevice(jsonData);
        jsonObject = JSONObject.parseObject(str);
    public Envelop createDevice(@ApiParam(name = "deviceId", value = "deviceId", required = true)
                                    @RequestParam(value = "deviceId") String deviceId,
                                @ApiParam(name = "layer", value = "层, 默认6", required = true)
                                @RequestParam(value = "layer", required = true, defaultValue = "6") String layer,
                                @ApiParam(name = "wayer", value = "列, 默认40", required = true)
                                    @RequestParam(value = "wayer", required = true, defaultValue = "40") String wayer){
        JSONObject jsonObject = new JSONObject();
        String str = deviceService.createDevice(deviceId, layer, wayer);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getString("response"));
    }
//    @PostMapping(value = BaseRequestMapping.BaseDevice.CREATE)
//    @ApiOperation(value = "新增设备信息")
//    public Envelop create(
//            @ApiParam(name = "jsonData", value = "Json数据", required = true)
//            @RequestParam String jsonData) throws Exception {
//        JSONObject jsonObject = null;
//        String str = deviceService.createDevice(jsonData);
//        jsonObject = JSONObject.parseObject(str);
//        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
//            return failed(jsonObject.getString("msg"));
//        }
//        return success(jsonObject.getString("msg"));
//    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.CREATEADDRESS)
    @ApiOperation(value = "新增设备投放地址")
    public Envelop createAddress(
@ -65,6 +81,8 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
        JSONObject jsonObject = null;
        String str = deviceService.createDeviceAddress(jsonData);
        jsonObject = JSONObject.parseObject(str);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
@ -331,6 +349,17 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getOutOfStockDeviceListByUserId)
    @ApiOperation(value = "获取缺货设备列表夹带userId" , notes="获取缺货设备列表")
    public Envelop getOutOfStockDeviceListByUserId( @ApiParam(name = "userId", value = "用户id")
                                            @RequestParam(value = "userId", required = true) String userId,
                                            @ApiParam(name = "content", value = "搜索内容")
                                            @RequestParam(value = "content", required = false) String content) throws Exception {
        JSONObject jsonObject = deviceService.getOutOfStockDeviceListByUserId(userId, content);
        return success(jsonObject.getJSONArray("msg"));
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.getDetialOutOfStock)
    @ApiOperation(value = "获取缺货信息")

+ 0 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/open/nologin/ServiceNoLoginEndPoint.java

@ -44,9 +44,6 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
            @ApiParam(name = "equNum",value = "设备编码",required = true)
            @RequestParam(value = "equNum",required = true)String equNum){
        List<AdvertisementPuttingAdminDO> list=launchService.solo(equNum);
        if (null==list){
            return failed("该设备没有广告或者该设备编码不存在");
        }
        return success("获取单个设备上所有广告明细成功",list);
    }

+ 308 - 40
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -46,6 +46,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    @Autowired
    private MedicineDeviceDeliveryDao deviceDeliveryDao;
    @Autowired
    private MediicinecabinetInventoryDao inventoryDao;
    @Autowired
    private ObjectMapper objectMapper;
@ -65,50 +68,87 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    private MediicinecabinetInventoryDao inventoryDao;
    /**
     * 新增设备
     * @param jsonData
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public String createDevice(String jsonData) {
    @Transactional(rollbackFor = Exception.class)
    public String createDevice(String deviceId, String layer, String wayer) {
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(jsonData)){
        if(StringUtils.isEmpty(deviceId)){
            result.put("msg","jsonData is null");
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        JSONObject device = JSONObject.parseObject(jsonData);
        if(null == device){
            result.put("msg","parameter device of jsonData is null");
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        //判断设备id是否存在
//        if(StringUtils.isEmpty(device.getString("id"))){
//            result.put("msg","parameter id for device is null when update device");
//            result.put("response", ConstantUtils.FAIL);
//            return result.toJSONString();
//        }
        Mediicinedevice mediicinedevice = null;
        try {
            mediicinedevice = objectMapper.readValue(device.toJSONString(), Mediicinedevice.class);
        } catch (IOException e) {
            result.put("msg", "convert device jsonObject to BaseDoctorDO failed," + e.getCause());
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        } catch (Exception e) {
            result.put("msg", "convert device birth failed," + e.getCause());
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        Mediicinedevice mediicinedevice = new Mediicinedevice();
        mediicinedevice.setEquNum(deviceId);
        mediicinedevice.setLayer(layer);
        mediicinedevice.setWayer(wayer);
        mediicinedevice.setCargoCapacity("5");
        deviceDao.save(mediicinedevice);
        for (int i = 0; i < Integer.parseInt(layer); i++) {
            for (int i1 = 0; i1 < Integer.parseInt(wayer); i1++) {
                MediicinecabinetInventory inventory = new MediicinecabinetInventory();
                inventory.setQty("0");
                inventory.setLayerNo(String.valueOf(i+1));
                inventory.setWayerNo(String.valueOf(i1+1));
                //到底要存什么,deviceId device表中equNum
                inventory.setIdDevice(deviceId);
                inventory.setState("0");
                inventory.setCargoCapacity(mediicinedevice.getCargoCapacity());
                inventory.setShelfStatus("0");
                inventoryDao.save(inventory);
            }
        }
        this.save(mediicinedevice);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg",mediicinedevice);
        return result.toJSONString();
    }
    /**
     * 新增设备
     * @param jsonData
     * @return
     */
//    @Transactional(rollbackFor = Exception.class)
//    public String createDevice(String jsonData) {
//
//        JSONObject result = new JSONObject();
//        if(StringUtils.isEmpty(jsonData)){
//            result.put("msg","jsonData is null");
//            result.put("response", ConstantUtils.FAIL);
//            return result.toJSONString();
//        }
//        JSONObject device = JSONObject.parseObject(jsonData);
//        if(null == device){
//            result.put("msg","parameter device of jsonData is null");
//            result.put("response", ConstantUtils.FAIL);
//            return result.toJSONString();
//        }
//        //判断设备id是否存在
////        if(StringUtils.isEmpty(device.getString("id"))){
////            result.put("msg","parameter id for device is null when update device");
////            result.put("response", ConstantUtils.FAIL);
////            return result.toJSONString();
////        }
//        Mediicinedevice mediicinedevice = null;
//        try {
//            mediicinedevice = objectMapper.readValue(device.toJSONString(), Mediicinedevice.class);
//        } catch (IOException e) {
//            result.put("msg", "convert device jsonObject to BaseDoctorDO failed," + e.getCause());
//            result.put("response", ConstantUtils.FAIL);
//            return result.toJSONString();
//        } catch (Exception e) {
//            result.put("msg", "convert device birth failed," + e.getCause());
//            result.put("response", ConstantUtils.FAIL);
//            return result.toJSONString();
//        }
//        this.save(mediicinedevice);
//        //t_mediicinecabinet_inventory
//
//        result.put("response",ConstantUtils.SUCCESS);
//        result.put("msg",mediicinedevice);
//        return result.toJSONString();
//    }
    @Transactional(rollbackFor = Exception.class)
    public String createDeviceAddress(String jsonData) {
@ -897,9 +937,14 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
//        String userId = userAgent.getUID();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        //设备总数
        int count = 0;
        //在线设备
        int onlineCount = 0;
        //在售设备
        int saleCount = 0;
        //缺货设备数
        int outCount = 0;
        if ("replenisher".equals(role.getCode())) {
            String sql = "SELECT\n" +
                    "\tdevice_id\n" +
@ -927,16 +972,72 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            onlineCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
            sencodSql = "select count(distinct(id)) from t_mediicine_device a where a.del = 1 and a.sale_status = 1 and ',"+ deviceIds +",' LIKE CONCAT('%,',a.id,',%')";
            saleCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
        } else {
            String sql = "SELECT\n" +
                    "t.hospital AS community\n" +
            sencodSql = "SELECT\n" +
                    "\tcount(DISTINCT(id))\n" +
                    "FROM\n" +
                    "wlyy_user_area AS t\n" +
                    "\tt_mediicine_device\n" +
                    "WHERE\n" +
                    "t.user_id = '" + userId + "'\n" +
                    "AND t.del = 1";
            List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
                    "\tdel = 1\n" +
                    "AND `status` = 0 and ',"+ deviceIds +",' LIKE CONCAT('%,',a.id,',%')";
//            sencodSql = "SELECT\n" +
//                    "\tcount(DISTINCT(t.id))\n" +
//                    "FROM\n" +
//                    "\tt_mediicine_device t\n" +
//                    "LEFT JOIN (\n" +
//                    "\tSELECT\n" +
//                    "\t\tid_device,\n" +
//                    "\t\tsum(qty) AS qty\n" +
//                    "\tFROM\n" +
//                    "\t\tt_mediicinecabinet_inventory\n" +
//                    "\tGROUP BY\n" +
//                    "\t\tid_device\n" +
//                    ") AS tmi ON t.id = tmi.id_device\n" +
//                    "WHERE\n" +
//                    "\tt.del = 1\n" +
//                    "AND tmi.qty < (t.capacity * t.ratio) and ',"+ deviceIds +",' LIKE CONCAT('%,',a.id,',%')";
            outCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
        } else {
            String belongCommunitys = "";
            String sql = "";
            //市管理员
            if ("saasAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "\tid\tas community\n" +
                        "FROM\n" +
                        "\tdm_hospital\n" +
                        "WHERE\n" +
                        "\tdel = 1";
            }
            //区域管理员
            if ("regionAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "\tdh.id AS community\n" +
                        "FROM\n" +
                        "\twlyy_user_area t\n" +
                        "LEFT JOIN dm_hospital dh ON t.town = dh.town\n" +
                        "WHERE\n" +
                        "\tt.user_id = '" + userId + "'\n" +
                        "AND t.del = 1\n" +
                        "AND dh.del = 1";
            }
            //社区管理员
            if ("communityAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "t.hospital AS community\n" +
                        "FROM\n" +
                        "wlyy_user_area AS t\n" +
                        "WHERE\n" +
                        "t.user_id = '" + userId + "'\n" +
                        "AND t.del = 1";
            }
            List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
            for (Map<String, Object> stringObjectMap : list) {
                if (stringObjectMap.get("community") != null && !StringUtils.isEmpty(stringObjectMap.get("community").toString())) {
                    if (StringUtils.isEmpty(belongCommunitys)) {
@ -947,7 +1048,6 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                }
            }
            //多个社区
            String sencodSql = "select count(1) from t_mediicine_device a where a.del = 1 and ',"+ belongCommunitys +",' LIKE CONCAT('%,',a.belong_community,',%')";
            count = jdbcTemplate.queryForObject(sencodSql,Integer.class);
            jsonObject.put("total", count);
@ -955,17 +1055,32 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            onlineCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
            sencodSql = "select count(distinct(id)) from t_mediicine_device a where a.del = 1 and a.sale_status = 1 and ',"+ belongCommunitys +",' LIKE CONCAT('%,',a.belong_community,',%')";
            saleCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
            sencodSql = "SELECT\n" +
                    "\tcount(DISTINCT(id))\n" +
                    "FROM\n" +
                    "\tt_mediicine_device\n" +
                    "WHERE\n" +
                    "\tdel = 1\n" +
                    "AND `status` = 0  and ',"+ belongCommunitys +",' LIKE CONCAT('%,',a.belong_community,',%')";
            outCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
        }
        jsonObject.put("total", count);
        jsonObject.put("onlineTotal", onlineCount);
        jsonObject.put("saleTotal", saleCount);
        jsonObject.put("onlineRate", onlineCount * 1.0 / count);
        jsonObject.put("outCount", outCount);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg", jsonObject);
        return result;
    }
    //获取当前设备数量countAllDevice
//    public  long countAll() {
//        return deviceDao.countAll();
@ -1162,6 +1277,159 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    }
    /**
     * 获取缺货设备,夹带userId,用于数据隔离
     * @param userId
     * @param content
     * @return
     * @throws Exception
     */
    public JSONObject getOutOfStockDeviceListByUserId(String userId, String content) throws Exception {
        JSONObject result = new JSONObject();
        if (StringUtils.isEmpty(userId)) {
            return result;
        }
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        List<Map<String, Object>> deviceList = null;
        if ("replenisher".equals(role.getCode())) {
            //补货员所分配的设备
            String sql = "SELECT\n" +
                    "\tdevice_id\n" +
                    "FROM\n" +
                    "\tt_mediicine_device_user\n" +
                    "WHERE\n" +
                    "\tuser_id = '" + userId +"'\n" +
                    "AND del = 1";
            //设备列表
            List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
            String deviceIds = "";
            for (Map<String, Object> stringObjectMap : list) {
                if (stringObjectMap.get("device_id") != null && !StringUtils.isEmpty(stringObjectMap.get("device_id").toString())) {
                    if (StringUtils.isEmpty(deviceIds)) {
                        deviceIds += stringObjectMap.get("device_id").toString();
                    } else {
                        deviceIds += "," +  stringObjectMap.get("device_id").toString();
                    }
                }
            }
            String sencodSql = "SELECT\n" +
                    "    t.id AS id,\n" +
                    "    t.belong_community AS belongCommunity,\n" +
                    "    t.community AS community,\n" +
                    "    t.del AS del,\n" +
                    "    t.delivery_address AS deliveryAddress,\n" +
                    "    t.detail_address AS detailAddress,\n" +
                    "    t.equ_area AS equArea,\n" +
                    "    t.equ_class AS equClass,\n" +
                    "    t.equ_info AS equInfo,\n" +
                    "    t.equ_name AS equName,\n" +
                    "    t.equ_num AS equNum,\n" +
                    "    t.equ_type AS equType,\n" +
                    "    t.fbelong_community AS fbelongCommunity,\n" +
                    "    t.machine_code AS machineCode,\n" +
                    "    t.network_status AS networkStatus,\n" +
                    "    t.poweron_test AS poweronTest,\n" +
                    "    t.reg_date AS regDate,\n" +
                    "    t.sale_status AS saleStatus,\n" +
                    "    t.signalintensity AS signalintensity,\n" +
                    "    t.upgr_adesit AS upgrAdesit,\n" +
                    "    t.`status` AS `status`,\n" +
                    "    t.card_status AS cardStatus,\n" +
                    "    t.operator AS operator,\n" +
                    "    t.pack_age AS packAge,\n" +
                    "    t.usage_flow AS usageFlow,\n" +
                    "    t.flow AS flow,\n" +
                    "    t.create_time AS createTime,\n" +
                    "    t.create_user AS createUser,\n" +
                    "    t.create_user_name AS createUserName,\n" +
                    "    t.update_time AS updateTime,\n" +
                    "    t.update_user AS updateUser,\n" +
                    "    t.update_user_name AS updateUserName,\n" +
                    "    t.aisles AS aisles,\n" +
                    "    t.capacity AS capacity,\n" +
                    "    t.ratio AS ratio,\n" +
                    "    t.cargo_capacity AS cargoCapacity,\n" +
                    "    t.layer AS layer,\n" +
                    "    t.wayer AS wayer\n" +
                    "FROM\n" +
                    "    t_mediicine_device AS t\n" +
                    "WHERE\n" +
                    "t.del = 1 AND  \n" +
                    "t.`status` = 0 and ',"+ deviceIds +",' LIKE CONCAT('%,',a.id,',%')";
             deviceList = hibenateUtils.createSQLQuery(sencodSql);
        } else {
            String belongCommunitys = "";
            String sql = "";
            //市管理员
            if ("saasAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "\tid\tas community\n" +
                        "FROM\n" +
                        "\tdm_hospital\n" +
                        "WHERE\n" +
                        "\tdel = 1";
            }
            //区域管理员
            if ("regionAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "\tdh.id AS community\n" +
                        "FROM\n" +
                        "\twlyy_user_area t\n" +
                        "LEFT JOIN dm_hospital dh ON t.town = dh.town\n" +
                        "WHERE\n" +
                        "\tt.user_id = '" + userId + "'\n" +
                        "AND t.del = 1\n" +
                        "AND dh.del = 1";
            }
            //社区管理员
            if ("communityAdmin".equals(role.getCode())) {
                sql = "SELECT\n" +
                        "t.hospital AS community\n" +
                        "FROM\n" +
                        "wlyy_user_area AS t\n" +
                        "WHERE\n" +
                        "t.user_id = '" + userId + "'\n" +
                        "AND t.del = 1";
            }
            List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
            for (Map<String, Object> stringObjectMap : list) {
                if (stringObjectMap.get("community") != null && !StringUtils.isEmpty(stringObjectMap.get("community").toString())) {
                    if (StringUtils.isEmpty(belongCommunitys)) {
                        belongCommunitys += stringObjectMap.get("community").toString();
                    } else {
                        belongCommunitys += "," +  stringObjectMap.get("community").toString();
                    }
                }
            }
//            sencodSql = "SELECT\n" +
//                    "\tcount(DISTINCT(id))\n" +
//                    "FROM\n" +
//                    "\tt_mediicine_device\n" +
//                    "WHERE\n" +
//                    "\tdel = 1\n" +
//                    "AND `status` = 0  and ',"+ belongCommunitys +",' LIKE CONCAT('%,',a.belong_community,',%')";
//
//            outCount = jdbcTemplate.queryForObject(sencodSql, Integer.class);
        }
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg",deviceList);
        return result;
    }
    /**
     * 获取所属id的缺货信息
     * @param ids

+ 2 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/advrtisement/AdvertisementLaunchService.java

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -38,7 +39,7 @@ public class AdvertisementLaunchService extends BaseJpaService<AdvertisementLaun
    public List<AdvertisementPuttingAdminDO> solo(String equNum) {
        Mediicinedevice mediicinedevice =deviceDao.findByEquNum(equNum);
        if (null==mediicinedevice){
            return null;
            return new ArrayList<>();
        }
        return adminDAO.findByDevIdInfo(mediicinedevice.getId());
    }

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasService.java

@ -327,8 +327,8 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
        UserDO userDO= userDao.findByUsername(saas.getEmail());
        if (null == userDO) {
            //初始化租户管理员
            user.setEnabled(true);
            user.setLocked(false);
            user.setEnabled(1);
            user.setLocked(0);
            user.setSalt(randomString(5));
            //账号
            user.setUsername(user.getEmail());

+ 61 - 42
svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java

@ -24,11 +24,13 @@ import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.base.wx.WxGraphicMessageVO;
import com.yihu.jw.restmodel.base.wx.WxReplySceneVO;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
import org.apache.axis.utils.Admin;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
@ -37,8 +39,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.swing.text.html.parser.Entity;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.util.*;
@ -93,12 +95,12 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
    public UserDO registerWithIdcard(UserDO userDO) {
        userDO.setSalt(randomString(5));
        if (StringUtils.isEmpty(userDO.getEnabled())){
            userDO.setEnabled(true);
        if (org.springframework.util.StringUtils.isEmpty(userDO.getEnabled())){
            userDO.setEnabled(1);
        }else {
            userDO.setEnabled(userDO.getEnabled());
        }
        userDO.setLocked(false);
        userDO.setLocked(0);
        userDO.setLoginFailureCount(0);
        String password = userDO.getPassword();
        if (StringUtils.isEmpty(password)) {
@ -116,8 +118,8 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
     */
    public UserDO registerWithMobile(UserDO userDO) {
        userDO.setSalt(randomString(5));
        userDO.setEnabled(true);
        userDO.setLocked(false);
        userDO.setEnabled(1);
        userDO.setLocked(0);
        userDO.setLoginFailureCount(0);
        String password = userDO.getPassword();
        if (StringUtils.isEmpty(password)) {
@ -193,7 +195,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        UserDO user = userDao.findOne(id);
        RoleDO role = null;
        if (user != null ) {
            if(!user.getEnabled()){
            if(user.getEnabled()==0){
                throw new Exception("用户已失效!");
            }
            userinfo.put("id", user.getId());
@ -316,7 +318,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public JSONObject createUser(String jsonData) {
    public JSONObject createUser(String jsonData) throws Exception {
        JSONObject result = new JSONObject();
        if (StringUtils.isEmpty(jsonData)) {
            result.put("msg", "parameter jsonData is null");
@ -325,44 +327,49 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        }
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        JSONObject user = jsonObject.getJSONObject("user");
        JSONArray org = jsonObject.getJSONArray("org");
        JSONArray area = jsonObject.getJSONArray("area");
        JSONArray equipment = jsonObject.getJSONArray("equipment");
//        JSONArray org = jsonObject.getJSONArray("org");
        JSONArray area = user.getJSONArray("area");
        JSONArray equipment = user.getJSONArray("equipment");
        //归属租户为默认租户,表示用户为超级管理员,不需要机构
       /* //归属租户为默认租户,表示用户为超级管理员,不需要机构
        if (null == user || CollectionUtils.isEmpty(org) && !user.getString("saasId").equalsIgnoreCase(defaultSaasId)) {
            result.put("msg", "请点击机构管理选择所在机构");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
        }*/
        //组装用户信息
        UserDO userDO = null;
        UserDO userDO = new UserDO();
        try {
            userDO = objectMapper.readValue(user.toJSONString(), UserDO.class);
        } catch (IOException e) {
//            userDO = objectMapper.readValue(user.toJSONString(), UserDO.class);
            userDO = EntityUtils.jsonToEntity(user.toString(),UserDO.class);
        } catch (Exception e) {
            result.put("msg", "convert user jsonObject to UserDO failed," + e.getCause());
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
        registerWithIdcard(userDO);
        if (!StringUtils.isNoneBlank(userDO.getIdcard())){
            registerWithMobile(userDO);
        }else {
            registerWithIdcard(userDO);
        }
        //组装用户与机构的关联关系
        List<BaseOrgUserDO> orgList = new ArrayList<>();
        BaseOrgUserDO orgUserDO = null;
        if(!CollectionUtils.isEmpty(org)){
            for (Object obj : org) {
                try {
                    orgUserDO = objectMapper.readValue(obj.toString(), BaseOrgUserDO.class);
                    orgUserDO.setUserId(userDO.getId());
                    orgList.add(orgUserDO);
                } catch (IOException e) {
                    result.put("msg", "convert org jsonObject to BaseOrgUserDO failed," + e.getCause());
                    result.put("response", ConstantUtils.FAIL);
                    return result;
                }
            }
            baseOrgUserService.batchInsert(orgList);
        }
//        List<BaseOrgUserDO> orgList = new ArrayList<>();
//        BaseOrgUserDO orgUserDO = null;
//        if(!CollectionUtils.isEmpty(org)){
//            for (Object obj : org) {
//                try {
//                    orgUserDO = objectMapper.readValue(obj.toString(), BaseOrgUserDO.class);
//                    orgUserDO.setUserId(userDO.getId());
//                    orgList.add(orgUserDO);
//                } catch (IOException e) {
//                    result.put("msg", "convert org jsonObject to BaseOrgUserDO failed," + e.getCause());
//                    result.put("response", ConstantUtils.FAIL);
//                    return result;
//                }
//            }
//            baseOrgUserService.batchInsert(orgList);
//        }
        //area:[{"city":"","cityName":"","town":"","townName":"","hospital":"","hospitalName":""}]
        //用户所属区域添加
        if (area!=null&&area.size()!=0){
@ -411,7 +418,11 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        }
        JSONObject returnMsg = new JSONObject();
        returnMsg.put("username",userDO.getUsername());
        returnMsg.put("password",userDO.getIdcard().substring(userDO.getIdcard().length()-6,userDO.getIdcard().length()));
        if (!StringUtils.isNoneBlank(userDO.getIdcard())){
            returnMsg.put("password",userDO.getMobile().substring(userDO.getMobile().length()-6,userDO.getMobile().length()));
        }else {
            returnMsg.put("password", userDO.getIdcard().substring(userDO.getIdcard().length() - 6, userDO.getIdcard().length()));
        }
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg", returnMsg);
        return result;
@ -694,8 +705,8 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        }
        user.setSalt(randomString(5));
        user.setEnabled(true);
        user.setLocked(false);
        user.setEnabled(1);
        user.setLocked(0);
        user.setLoginFailureCount(0);
        user.setPassword(MD5.md5Hex(pwd + "{" + user.getSalt() + "}"));
        userDao.save(user);
@ -749,8 +760,8 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        }
        
        user.setSalt(randomString(5));
        user.setEnabled(true);
        user.setLocked(false);
        user.setEnabled(1);
        user.setLocked(0);
        user.setLoginFailureCount(0);
        user.setPassword(MD5.md5Hex(password + "{" + user.getSalt() + "}"));
        userDao.save(user);
@ -782,7 +793,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
     */
    public JSONObject lockOrUnlocakUser(String userId,boolean lock){
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(lock)){
        if(org.springframework.util.StringUtils.isEmpty(userId) || org.springframework.util.StringUtils.isEmpty(lock)){
            result.put("msg","parameter id or del is null");
            result.put("response",ConstantUtils.FAIL);
            return result;
@ -793,7 +804,11 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
            result.put("response",ConstantUtils.FAIL);
            return result;
        }
        user.setLocked(lock);
        if (lock){
            user.setLocked(0);
        }else {
            user.setLocked(1);
        }
        user.setLockedDate(new Date());
        this.save(user);
        result.put("response",ConstantUtils.SUCCESS);
@ -809,7 +824,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
     */
    public JSONObject enableOrDisable(String userId,boolean lock){
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(lock)){
        if(org.springframework.util.StringUtils.isEmpty(userId) || org.springframework.util.StringUtils.isEmpty(lock)){
            result.put("msg","parameter id or del is null");
            result.put("response",ConstantUtils.FAIL);
            return result;
@ -820,7 +835,11 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
            result.put("response",ConstantUtils.FAIL);
            return result;
        }
        user.setEnabled(lock);
        if (lock){
            user.setEnabled(1);
        }else {
            user.setEnabled(0);
        }
        this.save(user);
        result.put("response",ConstantUtils.SUCCESS);
        return result;