Browse Source

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

wangzhinan 5 years ago
parent
commit
f49dbc6a3d
32 changed files with 1675 additions and 18 deletions
  1. 4 0
      business/base-service/src/main/java/com/yihu/jw/wechat/service/WxTemplateService.java
  2. 31 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotDeviceDO.java
  3. 129 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotDeviceInventoryLogDO.java
  4. 51 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotPatientDeviceDO.java
  5. 247 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/platform/IotInterfaceLogDO.java
  6. 30 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/product/IotProductBaseInfoDO.java
  7. 63 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/workType/IotWorkTypeDO.java
  8. 30 3
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java
  9. 138 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotDeviceInventoryLogVO.java
  10. 30 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotDeviceVO.java
  11. 1 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotPatientDeviceVO.java
  12. 121 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/platform/IotInterfaceLogVO.java
  13. 20 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/product/IotProductBaseInfoVO.java
  14. 15 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java
  15. 91 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceInventoryController.java
  16. 15 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotPatientDeviceController.java
  17. 2 2
      svr/svr-iot/src/main/java/com/yihu/iot/controller/dict/HospitalController.java
  18. 74 8
      svr/svr-iot/src/main/java/com/yihu/iot/controller/platform/IotInterfaceController.java
  19. 15 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/product/IotProductController.java
  20. 88 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/workType/IotWorkTypeController.java
  21. 2 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceDao.java
  22. 8 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceInventoryLogDao.java
  23. 2 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceOrderDao.java
  24. 13 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotInterfaceLogDao.java
  25. 3 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotShareInterfaceDao.java
  26. 1 1
      svr/svr-iot/src/main/java/com/yihu/iot/dao/product/IotProductBaseInfoDao.java
  27. 19 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/workType/IotWorkTypeDao.java
  28. 188 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceInventoryService.java
  29. 131 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotInterfaceLogService.java
  30. 13 3
      svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotShareInterfaceService.java
  31. 27 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/product/IotProductBaseInfoService.java
  32. 73 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/workType/IotWorkTypeService.java

+ 4 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/service/WxTemplateService.java

@ -163,6 +163,10 @@ public class WxTemplateService {
                                if(ps.isEmpty()){
                                    logger.info("该用户"+patientDO.getName()+"没有openid,无法推送模版消息,用户ID:"+patientDO.getId()+"wechatId:"+wechatId);
                                }else{
                                    //修改处方状态
                                    String updateSql = "update WLYY_PRESCRIPTION set status = 20 where id = '"+prescriptionId+"' and status = 10";
                                    hibenateUtils.updateBySql(updateSql);
                                    ps.stream().forEach(one->{
                                        WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_unsettled_notice","djsxxtz",1);
                                        WxTemplateConfigDO newConfig = new WxTemplateConfigDO();

+ 31 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotDeviceDO.java

@ -82,6 +82,13 @@ public class IotDeviceDO extends UuidIdentityEntityWithOperator implements Seria
    @Column(name = "del")
    private Integer del;//删除标志(1有效,0删除)
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "category_name")
    private String categoryName;//设备类型名称
    @Column(name = "inventory_log_id")
    private String inventoryLogId;//出入库记录id
    public enum DeviceStatus {
        normal("正常", "1"),
        scrap("报废", "2"),
@ -315,4 +322,28 @@ public class IotDeviceDO extends UuidIdentityEntityWithOperator implements Seria
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getInventoryLogId() {
        return inventoryLogId;
    }
    public void setInventoryLogId(String inventoryLogId) {
        this.inventoryLogId = inventoryLogId;
    }
}

+ 129 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotDeviceInventoryLogDO.java

@ -0,0 +1,129 @@
package com.yihu.jw.entity.iot.device;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * 设备表
 * @author humingfen on 2020.4.29.
 */
@Entity
@Table(name = "iot_device_inventory_log")
public class IotDeviceInventoryLogDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "product_id")
    private String productId;//产品id
    @Column(name = "name")
    private String name;//设备名称
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "category_name")
    private String categoryName;//设备类型名称
    @Column(name = "hospital")
    private String hospital;//归属社区
    @Column(name = "hospital_name")
    private String hospitalName;//归属社区名称
    @Column(name = "order_id")
    private String orderId;//订单id
    @Column(name = "order_no")
    private String orderNo;//订单编号
//    @Column(name = "num")
//    private Integer num;//数量
    @Column(name = "type")
    private Integer type;//调拨类型(1入库 2设备调拨出库 3核销出库)
    @Column(name = "remark")
    private String remark;//备注
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getProductId() {
        return productId;
    }
    public void setProductId(String productId) {
        this.productId = productId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 51 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotPatientDeviceDO.java

@ -23,8 +23,12 @@ public class IotPatientDeviceDO extends UuidIdentityEntityWithOperator implement
    private String patientName;//居民姓名
    @Column(name = "idcard")
    private String idcard;//居民身份证
    @Column(name = "mobile")
    private String mobile;//联系方式
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "category_name")
    private String categoryName;//设备类型名称
    @Column(name = "device_id")
    private String deviceId;//设备id
    @Column(name = "device_name")
@ -42,6 +46,13 @@ public class IotPatientDeviceDO extends UuidIdentityEntityWithOperator implement
    @Column(name = "del")
    private Integer del;//删除标志
    @Column(name = "hospital")
    private String hospital;//归属社区
    @Column(name = "hospital_name")
    private String hospitalName;//归属社区名称
    @Column(name = "imgs")
    private String imgs;//领用协议,多个用逗号隔开
    public String getSaasId() {
        return saasId;
@ -146,4 +157,44 @@ public class IotPatientDeviceDO extends UuidIdentityEntityWithOperator implement
    public void setSim(String sim) {
        this.sim = sim;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getImgs() {
        return imgs;
    }
    public void setImgs(String imgs) {
        this.imgs = imgs;
    }
}

+ 247 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/platform/IotInterfaceLogDO.java

@ -0,0 +1,247 @@
package com.yihu.jw.entity.iot.platform;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import org.hibernate.boot.model.relational.Namespace;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
/**接口日志
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
@Entity
@Table(name = "iot_interface_log")
public class IotInterfaceLogDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name="company_id")
    private String companyId;//公司ID
    @Column(name="company_name")
    private String companyName;//公司名称
    @Column(name="app_id")
    private String appId;//应用ID
    @Column(name="app_name")
    private String  appName;//应用名称
    @Column(name="work_type_id")
    private String workTypeId;//业务类型ID
    @Column(name="work_type")
    private String workType;//业务类型
    @Column(name="explanation")
    private String explanation;//接口说明
    @Column(name="user_id")
    private String userId;//用户id
    @Column(name="user_name")
    private String userName;//用户名称
    @Column(name="address_ip")
    private String addressIp;//访问ip地址
    @Column(name="source")
    private String source;//请求来源 1:卫健委 2:单位 3:系统管理员
    @Column(name="head")
    private String head;//请求头
    @Column(name="request")
    private String request;//请求参数
    @Column(name="interface_name")
    private String interfaceName;//请求接口名称
    @Column(name="method")
    private String method;//方法名
    @Column(name="type")
    private int type;//请求方式 1:get请求  2:post请求
    @Column(name="url")
    private String url;//请求URL
    @Column(name="response")
    private String  response;//响应参数
    @Column(name="time")
    private Date time;//调用时间
    @Column(name="state")
    private int  state;//调用状态 1:成功   0:失败
    @Transient
    private String count;//调用次数
    @Transient
    private String failureRate;//失败率
    public String getCompanyId() {
        return companyId;
    }
    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }
    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
    public String getAppId() {
        return appId;
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
    public String getAppName() {
        return appName;
    }
    public void setAppName(String appName) {
        this.appName = appName;
    }
    public String getWorkTypeId() {
        return workTypeId;
    }
    public void setWorkTypeId(String workTypeId) {
        this.workTypeId = workTypeId;
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getAddressIp() {
        return addressIp;
    }
    public void setAddressIp(String addressIp) {
        this.addressIp = addressIp;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    public String getHead() {
        return head;
    }
    public void setHead(String head) {
        this.head = head;
    }
    public String getRequest() {
        return request;
    }
    public void setRequest(String request) {
        this.request = request;
    }
    public String getInterfaceName() {
        return interfaceName;
    }
    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public int getType() {
        return type;
    }
    public void setType(int type) {
        this.type = type;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getResponse() {
        return response;
    }
    public void setResponse(String response) {
        this.response = response;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    public int getState() {
        return state;
    }
    public void setState(int state) {
        this.state = state;
    }
    public String getWorkType() {
        return workType;
    }
    public void setWorkType(String workType) {
        this.workType = workType;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    @Transient
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    @Transient
    public String getFailureRate() {
        return failureRate;
    }
    public void setFailureRate(String failureRate) {
        this.failureRate = failureRate;
    }
}

+ 30 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/product/IotProductBaseInfoDO.java

@ -73,8 +73,14 @@ public class IotProductBaseInfoDO extends UuidIdentityEntityWithOperator impleme
    private Double purchasePrice;//进货价
    @Column(name = "retail_price")
    private Double retailPrice;//零售价格
    @Column(name = "category_name")
    private String categoryName;//设备类型标识
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "inventory_upper")
    private Integer inventoryUpper;//库存上限提醒值
    @Column(name = "inventory_floor")
    private Integer inventoryFloor;//库存下限提醒值
    public String getSaasId() {
        return saasId;
@ -307,4 +313,28 @@ public class IotProductBaseInfoDO extends UuidIdentityEntityWithOperator impleme
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public Integer getInventoryUpper() {
        return inventoryUpper;
    }
    public void setInventoryUpper(Integer inventoryUpper) {
        this.inventoryUpper = inventoryUpper;
    }
    public Integer getInventoryFloor() {
        return inventoryFloor;
    }
    public void setInventoryFloor(Integer inventoryFloor) {
        this.inventoryFloor = inventoryFloor;
    }
}

+ 63 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/workType/IotWorkTypeDO.java

@ -0,0 +1,63 @@
package com.yihu.jw.entity.iot.workType;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @author HZY 业务类型表
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@Entity
@Table(name = "iot_work_type")
public class IotWorkTypeDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "name")
    private String name;//业务类型名称
    @Column(name = "explanation")
    private String explanation;//说明
    @Column(name = "del")
    private String del;//删除标识: 1:删除  0:不删除
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
}

+ 30 - 3
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -23,6 +23,7 @@ public class IotRequestMapping {
        public static final String wlyy = api_iot_common + "/wlyy";
        public static final String figereLabel = api_iot_common + "/figereLabel";
        public static final String platform = api_iot_common + "/platform";
        public static final String workType = api_iot_common + "/workType";
        public static final String hospital = api_iot_common + "/hospital";
@ -114,6 +115,7 @@ public class IotRequestMapping {
        public static final String updProduct = "updProduct";
        public static final String delProduct = "delProduct";
        public static final String maintenanceUnitById = "maintenanceUnitById";
        public static final String setInventoryById = "setInventoryById";
    }
@ -140,7 +142,7 @@ public class IotRequestMapping {
        public static final String deleteLocation= "deteleLocation";
        public static final String updateLocation= "updateLocation";
        public static final String createPatientDevice = "createPatientDevice";
    }
@ -173,6 +175,13 @@ public class IotRequestMapping {
        public static final String api_update = "updDevice";
        public static final String api_queryPage = "queryDevicePage";
        public static final String api_getList = "getDeviceList";
        public static final String api_findByDeviceSn = "findByDeviceSn";
        //设备库存
        public static final String getDeviceInventoryList = "getDeviceInventoryList";
        public static final String updateInventory = "updateInventory";
        public static final String getDeviceInventoryLog = "getDeviceInventoryLog";
        public static final String getDeviceInventoryLogDetail = "getDeviceInventoryLogDetail";
        public static final String isSnExist = "isSnExist";
        public static final String isSimExist = "isSimExist";
@ -188,7 +197,7 @@ public class IotRequestMapping {
        public static final String del_message_fail = "该设备已绑定居民,不允许删除";
        public static final String message_success_create = "device create success";
        public static final String message_success_find_functions = "device find success";
        public static final String message_success_updateInventory = "device inventory update success";
    }
    /**
@ -288,20 +297,38 @@ public class IotRequestMapping {
    }
    /**
     * 居民标签信息模块常量
     * 平台接口信息模块常量
     */
    public static class  Platform{
        public static final String addInterface ="addInterface";
        public static final String editInterface ="editInterface";
        public static final String findInterfaceById ="findInterfaceById";
        public static final String findAll ="findAll";
        public static final String findAllLog ="findAllLog";
        public static final String conditionQueryPage ="conditionQueryPage";
        public static final String delete ="delete";
        public static final String dataConsumption ="dataConsumption";
        public static final String message_success_add = "add success";
        public static final String message_success_edit = "edit success";
        public static final String message_success_find = "find success";
        public static final String message_success_delete = "delete success";
    }
    /**
     * 业务类型信息模块常量
     */
    public static class WorkType{
        public static final  String addType="addType";
        public static final  String editType="editType";
        public static final  String deleteType="deleteType";
        public static final  String findType="findType";
        public static final String message_success_add = "workType add success";
        public static final String message_success_edit = "workType edit success";
        public static final String message_success_delete = "workType delete success";
        public static final String message_success_find = "workType find success";
    }
    /**
     * 单位模块常量

+ 138 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotDeviceInventoryLogVO.java

@ -0,0 +1,138 @@
package com.yihu.jw.restmodel.iot.device;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
/**
 * 设备出入库记录表
 * @author humingfen on 2020/5/6.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "设备出入库记录表", description = "设备出入库记录表")
public class IotDeviceInventoryLogVO extends BaseVO implements Serializable {
    @ApiModelProperty("产品id")
    private String productId;
    @ApiModelProperty("设备名称")
    private String name;
    @ApiModelProperty("设备类型")
    private String categoryCode;//设备类型标识
    @ApiModelProperty("设备类型名称")
    private String categoryName;//设备类型名称
    @ApiModelProperty("归属社区")
    private String hospital;
    @ApiModelProperty("归属社区名称")
    private String hospitalName;
    @ApiModelProperty("订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("调拨类型(1入库 2设备调拨出库 3核销出库)")
    private Integer type;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("数量")
    private Integer num;
    @ApiModelProperty("设备列表")
    private List<IotDeviceVO> deviceVOList;
    public String getProductId() {
        return productId;
    }
    public void setProductId(String productId) {
        this.productId = productId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public List<IotDeviceVO> getDeviceVOList() {
        return deviceVOList;
    }
    public void setDeviceVOList(List<IotDeviceVO> deviceVOList) {
        this.deviceVOList = deviceVOList;
    }
}

+ 30 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotDeviceVO.java

@ -68,6 +68,12 @@ public class IotDeviceVO extends BaseVO implements Serializable {
    private List<IotProductDataTransmissionVO> dataTransmissionVOList;
    @ApiModelProperty("关联居民")
    private List<IotPatientDeviceVO> patientDeviceVOList;
    @ApiModelProperty("库存数")
    private Integer inventoryCount;
    @ApiModelProperty("设备类型")
    private String categoryCode;//设备类型标识
    @ApiModelProperty("设备类型名称")
    private String categoryName;//设备类型名称
    public String getName() {
        return name;
@ -260,4 +266,28 @@ public class IotDeviceVO extends BaseVO implements Serializable {
    public void setPatientDeviceVOList(List<IotPatientDeviceVO> patientDeviceVOList) {
        this.patientDeviceVOList = patientDeviceVOList;
    }
    public Integer getInventoryCount() {
        return inventoryCount;
    }
    public void setInventoryCount(Integer inventoryCount) {
        this.inventoryCount = inventoryCount;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
}

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotPatientDeviceVO.java

@ -37,7 +37,7 @@ public class IotPatientDeviceVO extends BaseVO implements Serializable {
    private String categoryCode;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("社区地址")
    @ApiModelProperty("社区")
    private String hospitalName;
    @ApiModelProperty("病情:0绿标,1黄标,2红标")
    private Integer diseaseCondition;

+ 121 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/platform/IotInterfaceLogVO.java

@ -0,0 +1,121 @@
package com.yihu.jw.restmodel.iot.platform;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
/**
 * @author 接口日志表
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "接口日志表", description = "接口日志表")
public class IotInterfaceLogVO extends BaseVO implements Serializable {
    @ApiModelProperty("请求接口名称")
    private String interfaceName;//
    @ApiModelProperty("方法名")
    private String method;//方法名
    @ApiModelProperty("业务类型")
    private String workType;//业务类型
    @ApiModelProperty("接口说明")
    private String explanation;//接口说明
    @ApiModelProperty("访问ip地址")
    private String addressIp;//访问ip地址
    @ApiModelProperty("调用状态 1:成功   0:失败")
    private int  state;//调用状态 1:成功   0:失败
    @ApiModelProperty("调用时间")
    private Date time;//调用时间
    @ApiModelProperty("应用名称")
    private String  appName;//应用名称
    @ApiModelProperty("调用次数")
    private String count;//调用次数
    @ApiModelProperty("失败率")
    private String failureRate;//失败率
    public String getInterfaceName() {
        return interfaceName;
    }
    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public String getWorkType() {
        return workType;
    }
    public void setWorkType(String workType) {
        this.workType = workType;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    public String getAddressIp() {
        return addressIp;
    }
    public void setAddressIp(String addressIp) {
        this.addressIp = addressIp;
    }
    public int getState() {
        return state;
    }
    public void setState(int state) {
        this.state = state;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    public String getAppName() {
        return appName;
    }
    public void setAppName(String appName) {
        this.appName = appName;
    }
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    public String getFailureRate() {
        return failureRate;
    }
    public void setFailureRate(String failureRate) {
        this.failureRate = failureRate;
    }
}

+ 20 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/product/IotProductBaseInfoVO.java

@ -84,6 +84,10 @@ public class IotProductBaseInfoVO extends BaseVO implements Serializable {
    private Double retailPrice;
    @ApiModelProperty("设备类型标识")
    private String categoryCode;
    @ApiModelProperty("库存上限提醒值")
    private Double inventoryUpper;
    @ApiModelProperty("库存下限提醒值")
    private String inventoryFloor;
    public String getParentId() {
        return parentId;
@ -340,4 +344,20 @@ public class IotProductBaseInfoVO extends BaseVO implements Serializable {
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public Double getInventoryUpper() {
        return inventoryUpper;
    }
    public void setInventoryUpper(Double inventoryUpper) {
        this.inventoryUpper = inventoryUpper;
    }
    public String getInventoryFloor() {
        return inventoryFloor;
    }
    public void setInventoryFloor(String inventoryFloor) {
        this.inventoryFloor = inventoryFloor;
    }
}

+ 15 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java

@ -256,4 +256,19 @@ public class IotDeviceController extends EnvelopRestEndpoint {
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Device.api_findByDeviceSn)
    @ApiOperation(value = "根据sn查找设备", notes = "根据sn查找设备")
    public MixEnvelop<IotDeviceVO, IotDeviceVO> findByDeviceSn(@ApiParam(name = "deviceSn", value = "设备sn码")
                                                           @RequestParam(value = "deviceSn", required = true) String deviceSn
    ) {
        try {
            IotDeviceDO iotDeviceDO = iotDeviceService.findByDeviceSn(deviceSn);
            IotDeviceVO iotDeviceVO = convertToModel(iotDeviceDO,IotDeviceVO.class);
            return MixEnvelop.getSuccess(IotRequestMapping.Device.message_success_find, iotDeviceVO);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 91 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceInventoryController.java

@ -0,0 +1,91 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.service.device.IotDeviceInventoryService;
import com.yihu.jw.restmodel.iot.device.IotDeviceInventoryLogVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author humingfen on 2020.4.29
 */
@RestController
@RequestMapping(IotRequestMapping.Common.device)
@Api(tags = "设备库存管理相关操作", description = "设备库存管理相关操作")
public class IotDeviceInventoryController extends EnvelopRestEndpoint {
    @Autowired
    private IotDeviceInventoryService deviceInventoryService;
    @GetMapping(value = IotRequestMapping.Device.getDeviceInventoryList)
    @ApiOperation(value = "获取设备库存列表", notes = "获取设备库存列表")
    public MixEnvelop<IotDeviceVO, IotDeviceVO> getDeviceInventoryList(@ApiParam(name = "name", value = "设备名称")
                                                                       @RequestParam(value = "name", required = false) String name,
                                                                       @ApiParam(name = "categoryCode", value = "设备类型标识")
                                                                       @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                                       @ApiParam(name = "hospitalName", value = "单位名称")
                                                                       @RequestParam(value = "hospitalName", required = false) String hospitalName,
                                                                       @ApiParam(name = "page", value = "第几页", defaultValue = "1")
                                                                       @RequestParam(value = "page", required = false) Integer page,
                                                                       @ApiParam(name = "pageSize", value = "每页记录数")
                                                                       @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        try {
            return deviceInventoryService.getDeviceInventoryList(name, categoryCode, hospitalName, page, pageSize);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Device.updateInventory)
    @ApiOperation(value = "设备库存出入库", notes = "设备库存出入库")
    public MixEnvelop<IotDeviceVO, IotDeviceVO> updateInventory(@ApiParam(name = "jsonData", value = "设备出入库json", defaultValue = "")
                                                                @RequestParam(value = "jsonData", required = true) String jsonData) {
        try {
            Integer count = deviceInventoryService.updateInventory(jsonData);
            return MixEnvelop.getSuccess(IotRequestMapping.Device.message_success_updateInventory, count);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Device.getDeviceInventoryLog)
    @ApiOperation(value = "获取设备出入库记录", notes = "获取设备出入库记录")
    public MixEnvelop<IotDeviceInventoryLogVO, IotDeviceInventoryLogVO> getDeviceInventoryLog(@ApiParam(name = "name", value = "设备名称")
                                                                                              @RequestParam(value = "name", required = false) String name,
                                                                                              @ApiParam(name = "categoryCode", value = "设备类型标识")
                                                                                              @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                                                              @ApiParam(name = "type", value = "调拨类型(1入库 2设备调拨出库 3核销出库)")
                                                                                              @RequestParam(value = "type", required = false) Integer type,
                                                                                              @ApiParam(name = "page", value = "第几页", defaultValue = "1")
                                                                                              @RequestParam(value = "page", required = false) Integer page,
                                                                                              @ApiParam(name = "pageSize", value = "每页记录数")
                                                                                              @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        try {
            return deviceInventoryService.getDeviceInventoryLog(name, categoryCode, type, page, pageSize);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Device.getDeviceInventoryLogDetail)
    @ApiOperation(value = "获取设备出入库记录详情", notes = "获取设备出入库记录详情")
    public MixEnvelop<IotDeviceInventoryLogVO, IotDeviceInventoryLogVO> getDeviceInventoryLogDetail(@ApiParam(name = "id", value = "出入库记录id")
                                                                                              @RequestParam(value = "id", required = true) String id) {
        try {
            IotDeviceInventoryLogVO deviceInventoryLogVO = deviceInventoryService.getDeviceInventoryLogDetail(id);
            return MixEnvelop.getSuccess(IotRequestMapping.Device.message_success_updateInventory, deviceInventoryLogVO);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 15 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotPatientDeviceController.java

@ -289,4 +289,19 @@ public class IotPatientDeviceController extends EnvelopRestEndpoint {
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.PatientDevice.createPatientDevice)
    @ApiOperation(value = "设备发放", notes = "设备发放")
    public MixEnvelop<IotPatientDeviceVO, IotPatientDeviceVO> createPatientDevice(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                                                                     @RequestParam String jsonData) {
        try {
            //设备绑定
            IotPatientDeviceDO patientDevice = toEntity(jsonData, IotPatientDeviceDO.class);
            iotPatientDeviceService.create(patientDevice);
            return MixEnvelop.getSuccess(IotRequestMapping.Device.message_success_create);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 2 - 2
svr/svr-iot/src/main/java/com/yihu/iot/controller/dict/HospitalController.java

@ -24,8 +24,8 @@ public class HospitalController extends EnvelopRestEndpoint {
    @PostMapping(value = IotRequestMapping.Hospital.create)
    @ApiOperation(value = "创建编辑单位字典")
    public MixEnvelop create(
            @ApiParam(name = "jsonData", value = "设备体征字典json数据")
            @RequestParam(value = "jsonData", required = false) String jsonData){
            @ApiParam(name = "jsonData", value = "单位json数据")
            @RequestParam(value = "jsonData", required = true) String jsonData){
        try {
            IotHospitalDO hospitalDO = toEntity(jsonData, IotHospitalDO.class);
            return MixEnvelop.getSuccess(IotRequestMapping.Company.message_success_create, hospitalService.create(hospitalDO));

+ 74 - 8
svr/svr-iot/src/main/java/com/yihu/iot/controller/platform/IotInterfaceController.java

@ -1,9 +1,9 @@
package com.yihu.iot.controller.platform;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.service.platform.IotInterfaceLogService;
import com.yihu.iot.service.platform.IotShareInterfaceService;
import com.yihu.jw.entity.iot.platform.IotShareInterfaceDO;
import com.yihu.jw.restmodel.iot.company.IotCompanyVO;
import com.yihu.jw.restmodel.iot.platform.IotInterfaceLogVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
@ -11,12 +11,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import org.springframework.web.bind.annotation.*;
/**
 * @author HZY
@ -31,6 +26,10 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    @Autowired
    private IotShareInterfaceService iotShareInterfaceService;
    @Autowired
    private IotInterfaceLogService iotInterfaceLogService;
    @PostMapping(value = IotRequestMapping.Platform.addInterface)
    @ApiOperation(value = "新增共享接口",notes = "新增共享接口")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> addInterface(@ApiParam(name = "JSON",value = "接口JSON串") @RequestParam(value = "JSON",required = true)String json){
@ -97,6 +96,24 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    }
    @GetMapping(value = IotRequestMapping.Platform.delete)
    @ApiOperation(value = "根据ID删除共享接口",notes = "根据ID删除共享接口")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> deleteById(@ApiParam(name = "id", value = "ID", defaultValue = "")
                                                                       @RequestParam(value = "id", required = false) String id){
        try {
            iotShareInterfaceService.deleteById(id);
            return MixEnvelop.getSuccess(IotRequestMapping.Platform.message_success_delete);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Platform.conditionQueryPage)
    @ApiOperation(value = "条件查询分页",notes = "条件查询分页")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> conditionQueryPage(@ApiParam(name = "type", value = "业务类型", defaultValue = "")
@ -123,4 +140,53 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    }
    @GetMapping(value = IotRequestMapping.Platform.findAllLog)
    @ApiOperation(value = "分页查询所有接口日志信息",notes = "分页查询所有接口日志信息")
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> findAllLog(@ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                                       @RequestParam(value = "page", required = false) Integer page,
                                                                        @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                                       @RequestParam(value = "size", required = false) Integer size){
        try {
            if(page == null|| page < 0){
                page = 1;
            }
            if(size == null){
                size = 10;
            }
            return iotInterfaceLogService.findAll(page,size);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Platform.dataConsumption)
    @ApiOperation(value = "接口数据消费分页查询",notes = "接口数据消费分页查询")
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> dataConsumption(@ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                                      @RequestParam(value = "page", required = false) Integer page,
                                                                      @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                                      @RequestParam(value = "size", required = false) Integer size){
        try {
            if(page == null|| page < 0){
                page = 1;
            }
            if(size == null){
                size = 10;
            }
            return iotInterfaceLogService.dataConsumption(page,size);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 15 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/product/IotProductController.java

@ -201,4 +201,19 @@ public class IotProductController extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = IotRequestMapping.Product.setInventoryById)
    @ApiOperation(value = "根据产品id设置库存上下限预警值")
    public MixEnvelop<IotProductVO, IotProductVO> setInventoryById(@ApiParam(name = "jsonData", value = "设置库存预警提醒json数组", defaultValue = "[]")
                                                                       @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            List<IotProductBaseInfoDO> productBaseInfoDOList = iotProductBaseInfoService.setInventoryById(jsonData);
            //DO转VO
            List<IotProductBaseInfoVO> productVOList = convertToModels(productBaseInfoDOList,new ArrayList<>(productBaseInfoDOList.size()),IotProductBaseInfoVO.class);
            iotProductBaseInfoService.translateDictForList(productVOList);
            return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_update, productVOList);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 88 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/workType/IotWorkTypeController.java

@ -0,0 +1,88 @@
package com.yihu.iot.controller.workType;
import com.yihu.iot.service.workType.IotWorkTypeService;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@RestController
@RequestMapping(IotRequestMapping.Common.workType)
@Api(tags = "业务类型管理相关操作", description = "业务类型管理相关操作")
public class IotWorkTypeController extends EnvelopRestEndpoint {
    @Autowired
    private IotWorkTypeService iotWorkTypeService;
    @PostMapping(value = IotRequestMapping.WorkType.addType)
    @ApiOperation(value = "添加业务类型",notes = "添加业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> addType(@ApiParam(name = "JSON",value = "JSON串")
                                                           @RequestParam(value = "JSON",required = true)String json){
        try {
            iotWorkTypeService.addType(json);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_add);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.WorkType.editType)
    @ApiOperation(value = "编辑业务类型",notes = "编辑业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> editType(@ApiParam(name = "JSON",value = "JSON串")
                                                            @RequestParam(value = "JSON",required = true)String json){
        try {
            iotWorkTypeService.editType(json);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_edit);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.WorkType.deleteType)
    @ApiOperation(value = "根据ID删除业务类型",notes = "根据ID删除业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> deleteType(@ApiParam(name = "id",value = "ID")
                                                              @RequestParam(value = "id",required = true)String id){
        try {
            iotWorkTypeService.deleteType(id);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_delete);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.WorkType.findType)
    @ApiOperation(value = "根据ID查找业务类型",notes = "根据ID查找业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> findType(@ApiParam(name = "id",value = "ID")
                                                            @RequestParam(value = "id",required = true)String id){
        try {
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_find, iotWorkTypeService.findType(id));
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 2 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceDao.java

@ -41,4 +41,6 @@ public interface IotDeviceDao extends PagingAndSortingRepository<IotDeviceDO, St
    @Query("from IotDeviceDO w where w.orderId =?1 and w.del=1")
    List<IotDeviceDO> findListByOrderId(String orderId);
    List<IotDeviceDO> findListByInventoryLogId(String id);
}

+ 8 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceInventoryLogDao.java

@ -0,0 +1,8 @@
package com.yihu.iot.dao.device;
import com.yihu.jw.entity.iot.device.IotDeviceInventoryLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface IotDeviceInventoryLogDao extends PagingAndSortingRepository<IotDeviceInventoryLogDO, String>, JpaSpecificationExecutor<IotDeviceInventoryLogDO> {
}

+ 2 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceOrderDao.java

@ -17,4 +17,6 @@ public interface IotDeviceOrderDao extends PagingAndSortingRepository<IotDeviceO
    @Query("from IotDeviceOrderDO w where w.ymd =?1")
    List<IotDeviceOrderDO> findByYmd(String ymd);
    IotDeviceOrderDO findByOrderNoAndDel(String orderNo, Integer del);
}

+ 13 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotInterfaceLogDao.java

@ -0,0 +1,13 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
public interface IotInterfaceLogDao extends PagingAndSortingRepository<IotInterfaceLogDO,String>, JpaSpecificationExecutor<IotInterfaceLogDO> {
}

+ 3 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotShareInterfaceDao.java

@ -2,6 +2,7 @@ package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.platform.IotShareInterfaceDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
@ -11,4 +12,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 */
public interface IotShareInterfaceDao extends PagingAndSortingRepository<IotShareInterfaceDO,String>, JpaSpecificationExecutor<IotShareInterfaceDO> {
    @Query("from IotShareInterfaceDO w where w.id =?1 and w.del=0")
    IotShareInterfaceDO findById(String id);
}

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/dao/product/IotProductBaseInfoDao.java

@ -11,6 +11,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface IotProductBaseInfoDao extends PagingAndSortingRepository<IotProductBaseInfoDO,String>,
        JpaSpecificationExecutor<IotProductBaseInfoDO> {
    @Query("from IotProductBaseInfoDO w where w.id =?1")
    @Query("from IotProductBaseInfoDO w where w.id =?1 and w.del = 1")
    IotProductBaseInfoDO findById(String id);
}

+ 19 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/workType/IotWorkTypeDao.java

@ -0,0 +1,19 @@
package com.yihu.iot.dao.workType;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import org.springframework.data.jpa.mapping.JpaPersistentEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
public interface IotWorkTypeDao extends PagingAndSortingRepository<IotWorkTypeDO,String>, JpaSpecificationExecutor<IotWorkTypeDO> {
    @Query("from IotWorkTypeDO w where w.id=?1 and w.del=0")
    IotWorkTypeDO findById(String id);
}

+ 188 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceInventoryService.java

@ -0,0 +1,188 @@
package com.yihu.iot.service.device;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.iot.dao.device.IotDeviceDao;
import com.yihu.iot.dao.device.IotDeviceInventoryLogDao;
import com.yihu.iot.dao.device.IotDeviceOrderDao;
import com.yihu.jw.entity.iot.device.IotDeviceDO;
import com.yihu.jw.entity.iot.device.IotDeviceInventoryLogDO;
import com.yihu.jw.entity.iot.device.IotDeviceOrderDO;
import com.yihu.jw.restmodel.iot.device.IotDeviceInventoryLogVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//create by hmf on 2020.4.29
@Service
public class IotDeviceInventoryService extends BaseJpaService<IotDeviceInventoryLogDO, IotDeviceInventoryLogDao> {
    @Autowired
    private JdbcTemplate jdbcTempalte;
    @Autowired
    private IotDeviceDao iotDeviceDao;
    @Autowired
    private IotDeviceInventoryLogDao deviceInventoryLogDao;
    @Autowired
    private IotDeviceOrderDao deviceOrderDao;
    @Autowired
    private ObjectMapper objectMapper;
    /**
     * 获取库存列表接口
     *
     * @param name
     * @param categoryCode
     * @param hospitalName
     * @param page
     * @param pageSize
     * @return
     */
    public MixEnvelop<IotDeviceVO, IotDeviceVO> getDeviceInventoryList(String name, String categoryCode, String hospitalName, Integer page, Integer pageSize) {
        String sql = "select d.id,d.product_id,d.`name`,d.category_code,d.category_name,d.manufacturer_id,d.manufacturer_name,d.hospital,d.hospital_name,count(id) inventoryCount FROM `iot_device` d where del=1  ";
        if (StringUtils.isNotBlank(name)) {
            sql += "and name like '%" + name + "%' ";
        }
        if (StringUtils.isNotBlank(categoryCode)) {
            sql += "and category_code = '" + categoryCode + "' ";
        }
        if (StringUtils.isNotBlank(hospitalName)) {
            sql += "and hospital_name like '%" + hospitalName + "%' ";
        }
        sql += "GROUP BY d.product_id, d.manufacturer_id, d.hospital, d.category_code ";
        //判断是否需要分页
        if (page != null && pageSize != null) {
            Long count = Long.valueOf(jdbcTempalte.queryForList(sql).size());
            sql += "limit " + (page - 1) * pageSize + "," + pageSize;
            List<IotDeviceVO> deviceVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceVO.class));
            return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, deviceVOList, page, pageSize, count);
        } else {
            List<IotDeviceVO> deviceVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceVO.class));
            return MixEnvelop.getSuccessList(IotRequestMapping.Common.message_success_find, deviceVOList);
        }
    }
    public Integer updateInventory(String jsonData) {
        List<IotDeviceDO> deviceDOList = new ArrayList<>();
        JSONArray jsonArray = JSONArray.parseArray(jsonData);
        for (Object object : jsonArray) {
            JSONObject jsonObject = (JSONObject) object;
            String orderId = null;
            if (jsonObject.containsKey("orderNo") && StringUtils.isNotBlank(jsonObject.getString("orderNo"))) {
                String orderNo = jsonObject.getString("orderNo");//订单编号
                //根据订单编号获取订单id
                IotDeviceOrderDO deviceOrderDO = deviceOrderDao.findByOrderNoAndDel(orderNo, 1);
                orderId = deviceOrderDO.getId();
            }
            String deviceList = jsonObject.getString("deviceList");//需进行操作的设备列表
            IotDeviceInventoryLogDO deviceInventoryLogDO = null;
            List<IotDeviceDO> deviceDOS = new ArrayList<>();
            try {
                deviceInventoryLogDO = objectMapper.readValue(jsonObject.toString(), IotDeviceInventoryLogDO.class);
                deviceDOS = new ObjectMapper().readValue(deviceList, new TypeReference<List<IotDeviceDO>>() {
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
            //保存出入库日志
            deviceInventoryLogDO.setSaasId(getCode());
            deviceInventoryLogDO.setOrderId(orderId);
            deviceInventoryLogDO.setCreateTime(new Date());
            deviceInventoryLogDO.setUpdateTime(new Date());
//            deviceInventoryLogDO.setNum(deviceDOS.size());
            deviceInventoryLogDao.save(deviceInventoryLogDO);
            //根据类型处理出入库
            for (IotDeviceDO deviceDO : deviceDOS) {
                String deviceSn = deviceDO.getDeviceSn();
                Integer type = deviceInventoryLogDO.getType();//调拨类型(1入库 2设备调拨出库 3核销出库)
                //设备出库,更换相关信息
                if (type.equals("1")) {
                    deviceDO.setSaasId(getCode());
                } else {
                    deviceDO = iotDeviceDao.findByDeviceSn(deviceSn);
                    if (type.equals("3")) {
                        deviceDO.setDel(0);
                        deviceDO.setStatus("2");
                        deviceDO.setInventoryLogId(deviceInventoryLogDO.getId());
                        deviceDO.setUpdateTime(new Date());
                        deviceDOList.add(deviceDO);
                        continue;
                    }
                }
                deviceDO.setProductId(jsonObject.getString("productId"));
                deviceDO.setName(jsonObject.getString("name"));
                deviceDO.setCategoryCode(jsonObject.getString("categoryCode"));
                deviceDO.setCategoryName(jsonObject.getString("categoryName"));
                deviceDO.setManufacturerId(jsonObject.getString("manufacturerId"));
                deviceDO.setManufacturerName(jsonObject.getString("manufacturerName"));
                deviceDO.setHospital(jsonObject.getString("hospital"));
                deviceDO.setHospitalName(jsonObject.getString("hospitalName"));
                if (StringUtils.isNotBlank(orderId)) {
                    deviceInventoryLogDO.setOrderId(orderId);
                }
                if (jsonObject.containsKey("orderNo") && StringUtils.isNotBlank(jsonObject.getString("orderNo"))) {
                    deviceInventoryLogDO.setOrderNo(jsonObject.getString("orderNo"));
                }
                deviceDO.setDel(1);
                deviceDO.setStatus("1");
                deviceDO.setInventoryLogId(deviceInventoryLogDO.getId());
                deviceDO.setCreateTime(new Date());
                deviceDO.setUpdateTime(new Date());
                deviceDOList.add(deviceDO);
            }
        }
        iotDeviceDao.save(deviceDOList);
        return deviceDOList.size();
    }
    public MixEnvelop<IotDeviceInventoryLogVO, IotDeviceInventoryLogVO> getDeviceInventoryLog(String name, String categoryCode, Integer type, Integer page, Integer pageSize) {
        String sql = "SELECT l.*, count(d.id) num FROM `iot_device_inventory_log` l LEFT JOIN iot_device d on l.id = d.inventory_log_id where 1=1 ";
        if (StringUtils.isNotBlank(name)) {
            sql += "and l.name like '%" + name + "%' ";
        }
        if (StringUtils.isNotBlank(categoryCode)) {
            sql += "and l.category_code = '" + categoryCode + "' ";
        }
        if (type != null) {
            sql += "and l.type = '" + type + "' ";
        }
        sql += "GROUP BY l.id order BY l.create_time desc ";
        //判断是否需要分页
        if (page != null && pageSize != null) {
            Long count = Long.valueOf(jdbcTempalte.queryForList(sql).size());
            sql += "limit " + (page - 1) * pageSize + "," + pageSize;
            List<IotDeviceInventoryLogVO> inventoryLogVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceInventoryLogVO.class));
            return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, inventoryLogVOList, page, pageSize, count);
        } else {
            List<IotDeviceInventoryLogVO> inventoryLogVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceInventoryLogVO.class));
            return MixEnvelop.getSuccessList(IotRequestMapping.Common.message_success_find, inventoryLogVOList);
        }
    }
    public IotDeviceInventoryLogVO getDeviceInventoryLogDetail(String id) {
        IotDeviceInventoryLogDO deviceInventoryLogDO = deviceInventoryLogDao.findOne(id);
        //获取出入库详情设备列表
        List<IotDeviceDO> deviceDOS = iotDeviceDao.findListByInventoryLogId(id);
        IotDeviceInventoryLogVO deviceInventoryLogVO = convertToModel(deviceInventoryLogDO, IotDeviceInventoryLogVO.class);
        if (deviceDOS != null && deviceDOS.size() > 0) {
            List<IotDeviceVO> deviceVOS = new ArrayList<>();
            deviceInventoryLogVO.setDeviceVOList(convertToModels(deviceDOS, deviceVOS, IotDeviceVO.class));
        }
        deviceInventoryLogVO.setNum(deviceDOS.size());
        return deviceInventoryLogVO;
    }
}

+ 131 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotInterfaceLogService.java

@ -0,0 +1,131 @@
package com.yihu.iot.service.platform;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.yihu.iot.dao.platform.IotInterfaceLogDao;
import com.yihu.iot.service.useragent.UserAgent;
import com.yihu.jw.entity.iot.company.IotCompanyDO;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import com.yihu.jw.restmodel.iot.platform.IotInterfaceLogVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.swing.plaf.PanelUI;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
@Service
public class IotInterfaceLogService extends BaseJpaService<IotInterfaceLogDO,IotInterfaceLogDao> {
    private static final Logger logger = LoggerFactory.getLogger(IotInterfaceLogService.class);
    @Autowired
    private IotInterfaceLogDao iotInterfaceLogDao;
    @Autowired
    private UserAgent userAgent;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 分页查询日志信息
     * @param page
     * @param size
     * @return
     * @throws ParseException
     */
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> findAll(Integer page, Integer size) throws ParseException {
        String sql = "select * from iot_interface_log where 1=1;";
        String sorts = "-updateTime";//按更新时间降序
//        List<IotInterfaceLogDO> list = search(null, filters, sorts, page, size);
        List<IotInterfaceLogDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(IotInterfaceLogDO.class));
        ArrayList<IotInterfaceLogVO> resultList = new ArrayList<>();
        list.forEach(one->{
            IotInterfaceLogVO target = new IotInterfaceLogVO();
            BeanUtils.copyProperties(one,target);
            resultList.add(target);
        });
        long count =list.size();
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,resultList,page, size,count);
    }
    /**
     * 分页查询接口调用信息
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> dataConsumption(Integer page,Integer size){
        String sqlTotal="SELECT COUNT(id) num,app_name,interface_name,work_type FROM iot_interface_log GROUP BY app_name,interface_name;";
        String sql="SELECT COUNT(id) num,app_name,interface_name,work_type FROM iot_interface_log  WHERE state=0 GROUP BY app_name,interface_name;";
        List<IotInterfaceLogVO> list = new ArrayList<>();
        List<Map<String, Object>> total = jdbcTemplate.queryForList(sqlTotal);
        List<Map<String, Object>> failCount = jdbcTemplate.queryForList(sql);
        total.forEach(one->{
            IotInterfaceLogVO iotInterfaceLogVO = new IotInterfaceLogVO();
            iotInterfaceLogVO.setAppName(one.get("app_name").toString());
            iotInterfaceLogVO.setInterfaceName(one.get("interface_name").toString());
            iotInterfaceLogVO.setWorkType(one.get("work_type").toString());
            iotInterfaceLogVO.setCount(one.get("num").toString());
            list.add(iotInterfaceLogVO);
        });
        Long totalCount = (long) list.size();
        if (failCount==null){
            list.forEach(one->{
                one.setFailureRate("0.00");
            });
            return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,totalCount);
        }
        list.forEach(iotInterfaceLogVO->{
            failCount.forEach(one->{
                if(iotInterfaceLogVO.getAppName().equalsIgnoreCase(one.get("app_name").toString())
                        && iotInterfaceLogVO.getInterfaceName().equalsIgnoreCase(one.get("interface_name").toString()) ){
                    String num = one.get("num").toString();
                    Double value = Double.valueOf(num);
                    String count = iotInterfaceLogVO.getCount();
                    Double all = Double.valueOf(count);
                    DecimalFormat df=new DecimalFormat("0.00");//设置保留位数
                    String format = df.format(value / all);
                    iotInterfaceLogVO.setFailureRate(format);
                }
            });
        });
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,totalCount);
    }
}

+ 13 - 3
svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotShareInterfaceService.java

@ -69,9 +69,9 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
     * @param id
     * @return
     */
    public IotShareInterfaceDO findInterfaceById(String id) throws ParseException {
    public IotShareInterfaceDO findInterfaceById(String id) {
        IotShareInterfaceDO iotShareInterfaceDO = iotShareInterfaceDao.findOne(id);
        IotShareInterfaceDO iotShareInterfaceDO = iotShareInterfaceDao.findById(id);
        return iotShareInterfaceDO;
    }
@ -95,7 +95,7 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
    }
    /**
     * 分页查询所有
     * 条件分页查询所有
     * @param page
     * @param size
     * @param type
@ -125,4 +125,14 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Company.message_success_find_functions,list, page, size,count);
    }
    /**
     * 根据ID删除共享接口
     * @param id
     * @return
     */
    public void deleteById(String id) {
        IotShareInterfaceDO shareInterfaceDO = iotShareInterfaceDao.findById(id);
        shareInterfaceDO.setDel("1");
        iotShareInterfaceDao.save(shareInterfaceDO);
    }
}

+ 27 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/product/IotProductBaseInfoService.java

@ -1,5 +1,7 @@
package com.yihu.iot.service.product;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.dao.device.IotOrderPurchaseDao;
import com.yihu.iot.dao.product.*;
import com.yihu.iot.service.dict.IotSystemDictService;
@ -174,6 +176,7 @@ public class IotProductBaseInfoService extends BaseJpaService<IotProductBaseInfo
        baseInfoDOOld.setUnit(baseInfoDO.getUnit());
        baseInfoDOOld.setPurchasePrice(baseInfoDO.getPurchasePrice());
        baseInfoDOOld.setRetailPrice(baseInfoDO.getRetailPrice());
        baseInfoDOOld.setCategoryName(baseInfoDO.getCategoryName());
        baseInfoDOOld.setCategoryCode(baseInfoDO.getCategoryCode());
        baseInfoDOOld.setSaasId(getCode());
        baseInfoDOOld.setId(baseInfoDO.getId());
@ -330,4 +333,28 @@ public class IotProductBaseInfoService extends BaseJpaService<IotProductBaseInfo
        }
    }
    /**
     * 设置库存上下限提醒值
     * @param jsonData
     * @return
     */
    public List<IotProductBaseInfoDO> setInventoryById(String jsonData) {
        List<IotProductBaseInfoDO> list = new ArrayList();
        JSONArray jsonArray = JSONArray.parseArray(jsonData);
        for (Object object : jsonArray){
            JSONObject jsonObject = (JSONObject) object;
            String id  = jsonObject.getString("id");
            Integer inventoryUpper = jsonObject.getInteger("inventoryUpper");
            Integer inventoryFloor = jsonObject.getInteger("inventoryFloor");
            //根据id查找对应产品
            IotProductBaseInfoDO productBaseInfoDO = iotProductBaseInfoDao.findById(id);
            if (productBaseInfoDO != null){
                productBaseInfoDO.setInventoryUpper(inventoryUpper);
                productBaseInfoDO.setInventoryFloor(inventoryFloor);
                list.add(productBaseInfoDO);
            }
        }
        iotProductBaseInfoDao.save(list);
        return list;
    }
}

+ 73 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/workType/IotWorkTypeService.java

@ -0,0 +1,73 @@
package com.yihu.iot.service.workType;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.dao.workType.IotWorkTypeDao;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class IotWorkTypeService extends BaseJpaService<IotWorkTypeDO, IotWorkTypeDao> {
    
    @Autowired
    private IotWorkTypeDao iotWorkTypeDao;
    /**
     * 增加业务类型
     * @param json
     */
    public void addType(String json) {
        IotWorkTypeDO iotWorkTypeDO = JSONObject.parseObject(json, IotWorkTypeDO.class);
        iotWorkTypeDO.setDel("0");
        iotWorkTypeDao.save(iotWorkTypeDO);
    }
    /**
     * 编辑业务类型
     * @param json
     */
    public void editType(String json) {
        IotWorkTypeDO newType = JSONObject.parseObject(json, IotWorkTypeDO.class);
        IotWorkTypeDO old = iotWorkTypeDao.findOne(newType.getId());
        old.setName(newType.getName());
        old.setExplanation(newType.getExplanation());
        old.setDel("0");
        old.setId(old.getId());
        iotWorkTypeDao.save(old);
    }
    /**
     * 根据ID删除业务类型
     * @param id
     */
    public void deleteType(String id) {
        IotWorkTypeDO type = iotWorkTypeDao.findOne(id);
        if(type.getDel().equalsIgnoreCase("1")){
            throw new RuntimeException("改类型已删除,请勿重复操作");
        }
        type.setDel("1");
        iotWorkTypeDao.save(type);
    }
    /**
     * 根据ID查找业务类型
     * @param id
     */
    public IotWorkTypeDO findType(String id) {
        IotWorkTypeDO type = iotWorkTypeDao.findById(id);
        if(type==null){
            throw  new RuntimeException("无该类型");
        }
        return type;
    }
}