Bladeren bron

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

lulihong 3 jaren geleden
bovenliggende
commit
dd04f6a16b
40 gewijzigde bestanden met toevoegingen van 1712 en 193 verwijderingen
  1. 99 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MedicineDevicePrintMessage.java
  2. 20 2
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MediicinecabinetInventory.java
  3. 55 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinedevice.java
  4. 18 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicineorder.java
  5. 40 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockout.java
  6. 39 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockup.java
  7. 5 5
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockupdetail.java
  8. 14 0
      common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinewarray.java
  9. 14 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/role/MenuDO.java
  10. 5 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  11. 10 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/MenuVO.java
  12. 9 1
      gateway/ag-basic/src/main/resources/application.yml
  13. 15 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MedicineDevicePrintMessageDao.java
  14. 2 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MedicineDrugInventoryRecordDao.java
  15. 5 2
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicineDeviceDao.java
  16. 3 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicineorderDao.java
  17. 3 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/MenuDao.java
  18. 2 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleDao.java
  19. 32 4
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDeviceEndpoint.java
  20. 62 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDevicePrintMessageEndpoint.java
  21. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineOutEndpoint.java
  22. 19 5
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineWarrayEndpoint.java
  23. 137 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/open/nologin/BaseServiceNoEntryPoint.java
  24. 154 7
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/open/nologin/ServiceNoLoginEndPoint.java
  25. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java
  26. 4 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java
  27. 3 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineDrugsService.java
  28. 284 98
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java
  29. 4 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineServive.java
  30. 37 6
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockOutService.java
  31. 16 8
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockUpService.java
  32. 14 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineUserService.java
  33. 72 25
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineWarrayService.java
  34. 140 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedevicePrintMessageService.java
  35. 199 21
      svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java
  36. 9 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java
  37. 4 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleService.java
  38. 153 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java
  39. 7 1
      svr/svr-base/src/main/resources/application.yml
  40. 1 1
      svr/svr-base/src/main/resources/bootstrap.yml

+ 99 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MedicineDevicePrintMessage.java

@ -0,0 +1,99 @@
package com.yihu.jw.entity.a1entity;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name="t_mediicine_device_print_message")
public class MedicineDevicePrintMessage extends UuidIdentityEntityWithCreateTime {
    /**
     * 单据信息
     */
    private String info;
    /**
     * 备注
     */
    private String remark;
    /**
     * 客服电话
     */
    private String phone;
    /**
     * 结尾致言
     */
    private String remarkEnd;
    /**
     * 图片二维码
     */
    private String picture;
    /**
     * 设备id
     */
    private String deviceId;
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getRemarkEnd() {
        return remarkEnd;
    }
    public void setRemarkEnd(String remarkEnd) {
        this.remarkEnd = remarkEnd;
    }
    public String getPicture() {
        return picture;
    }
    public void setPicture(String picture) {
        this.picture = picture;
    }
    public String getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }
}

+ 20 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MediicinecabinetInventory.java

@ -24,7 +24,7 @@ public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator im
    private String sku;
    /**
     * state
     * state,用于区分是单列货道,还是合并货道,1,单列,21合并主,20合并副货道
     */
    private String state;
@ -110,10 +110,20 @@ public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator im
    private String merge;
    /**
     * 货道状态,1开启,0关闭,只针对出货的问题,初始化,默认开启,1、解绑设备,2、设备初始化两位置涉及到
     * 货道状态,1开启,0关闭,只针对出货的问题,
     * 初始化,默认开启,1、解绑设备,2、设备初始化两位置涉及到,3更新设备货道故障状态也会更改这次内容
     */
    private String cargoState;
    /**
     * 2021-12-22,新增故障,
     * 货道故障状态,1故障,0正常,
     * 涉及位置:
     * 1、设备初始化,默认正常,(解绑设备就不更改了,故障就是故障)
     * 2、更新设备故障状态
     */
    private String faultState;
    public MediicinecabinetInventory() {
    }
@ -276,4 +286,12 @@ public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator im
    public void setCargoState(String cargoState) {
        this.cargoState = cargoState;
    }
    public String getFaultState() {
        return faultState;
    }
    public void setFaultState(String faultState) {
        this.faultState = faultState;
    }
}

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

@ -4,6 +4,7 @@ package com.yihu.jw.entity.a1entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
@ -190,6 +191,16 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator{
     */
    private String temperature;
    /**
     * 当前湿度
     */
    private String nowHumidity;
    /**
     * 当前温度
     */
    private String nowTemperature;
    /**
     * 湿度控制
     */
@ -220,6 +231,16 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator{
     */
    private String waringHumidityLow;
    /**
     * 温湿度异常
     */
    private String abnormal;
    /**
     * 最后一次记录时间
     */
    private Date logTime;
    public Mediicinedevice() {
    }
@ -560,4 +581,38 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator{
    }
    public String getNowHumidity() {
        return nowHumidity;
    }
    public void setNowHumidity(String nowHumidity) {
        this.nowHumidity = nowHumidity;
    }
    public String getNowTemperature() {
        return nowTemperature;
    }
    public void setNowTemperature(String nowTemperature) {
        this.nowTemperature = nowTemperature;
    }
    public String getAbnormal() {
        return abnormal;
    }
    public void setAbnormal(String abnormal) {
        this.abnormal = abnormal;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "log_time", nullable = false, length = 0,updatable = false)
    public Date getLogTime() {
        return logTime;
    }
    public void setLogTime(Date logTime) {
        this.logTime = logTime;
    }
}

+ 18 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicineorder.java

@ -6,8 +6,10 @@ import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Entity
@Table(name = "t_mediicine_order")
@ -235,6 +237,13 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
    private String community;
    /**
     * 订单详情
     */
    @Transient
    private List<Mediicineorderdetail> mediicineorderdetails;
    public Mediicineorder() {
    }
@ -593,4 +602,13 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
    public void setShippingType(Integer shippingType) {
        this.shippingType = shippingType;
    }
    @Transient
    public List<Mediicineorderdetail> getMediicineorderdetails() {
        return mediicineorderdetails;
    }
    public void setMediicineorderdetails(List<Mediicineorderdetail> mediicineorderdetails) {
        this.mediicineorderdetails = mediicineorderdetails;
    }
}

+ 40 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockout.java

@ -25,11 +25,21 @@ public class Mediicinestockout extends UuidIdentityEntityWithOperator implements
     */
    private String community;
    /**
     * 社区名字
     */
    private String communityName;
    /**
     * replenisher
     */
    private String replenishEr;
    /**
     * replenishErName
     */
    private String replenishErName;
    /**
     * state
     */
@ -40,6 +50,11 @@ public class Mediicinestockout extends UuidIdentityEntityWithOperator implements
     */
    private String replenishEqu;
    /**
     * 设备名称
     */
    private String replenishEquName;
    /**
     * replenishcate
     */
@ -200,4 +215,29 @@ public class Mediicinestockout extends UuidIdentityEntityWithOperator implements
    public void setUpNum(String upNum) {
        this.upNum = upNum;
    }
    public String getCommunityName() {
        return communityName;
    }
    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }
    public String getReplenishErName() {
        return replenishErName;
    }
    public void setReplenishErName(String replenishErName) {
        this.replenishErName = replenishErName;
    }
    public String getReplenishEquName() {
        return replenishEquName;
    }
    public void setReplenishEquName(String replenishEquName) {
        this.replenishEquName = replenishEquName;
    }
}

+ 39 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockup.java

@ -20,11 +20,21 @@ public class Mediicinestockup extends UuidIdentityEntityWithOperator implements
     */
    private String community;
    /**
     *
     */
    private String communityName;
    /**
     * replenisher
     */
    private String replenishEr;
    /**
     * replenishErName
     */
    private String replenishErName;
    /**
     * state, 1已生成,2未生成,3已删除
     */
@ -35,6 +45,11 @@ public class Mediicinestockup extends UuidIdentityEntityWithOperator implements
     */
    private String replenishEqu;
    /**
     * replenishName
     */
    private String replenishEquName;
    /**
     * replenishcate
     */
@ -150,4 +165,28 @@ public class Mediicinestockup extends UuidIdentityEntityWithOperator implements
    public void setTrackNum(Integer trackNum) {
        this.trackNum = trackNum;
    }
    public String getCommunityName() {
        return communityName;
    }
    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }
    public String getReplenishEquName() {
        return replenishEquName;
    }
    public void setReplenishEquName(String replenishEquName) {
        this.replenishEquName = replenishEquName;
    }
    public String getReplenishErName() {
        return replenishErName;
    }
    public void setReplenishErName(String replenishErName) {
        this.replenishErName = replenishErName;
    }
}

+ 5 - 5
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockupdetail.java

@ -87,7 +87,7 @@ public class Mediicinestockupdetail extends UuidIdentityEntityWithOperator imple
    /**
     * 审核出库数
     */
    private String warehouses;
    private String wareHouses;
    private String orgCode;
@ -224,11 +224,11 @@ public class Mediicinestockupdetail extends UuidIdentityEntityWithOperator imple
        this.claim = claim;
    }
    public String getWarehouses() {
        return warehouses;
    public String getWareHouses() {
        return wareHouses;
    }
    public void setWarehouses(String warehouses) {
        this.warehouses = warehouses;
    public void setWareHouses(String wareHouses) {
        this.wareHouses = wareHouses;
    }
}

+ 14 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinewarray.java

@ -161,6 +161,12 @@ public class Mediicinewarray extends UuidIdentityEntityWithOperator implements S
     */
    private String otherCouont;
    /**
     * 故障详细内容
     */
    private String remark;
    public Mediicinewarray() {
    }
@ -403,4 +409,12 @@ public class Mediicinewarray extends UuidIdentityEntityWithOperator implements S
    public void setOtherCouont(String otherCouont) {
        this.otherCouont = otherCouont;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 14 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/role/MenuDO.java

@ -20,6 +20,11 @@ public class MenuDO extends UuidIdentityEntityWithOperator {
	 * 名称
	 */
	private String name;
	/**
	 * 1菜单0按钮
	 */
	private Integer type;
	/**
	 * 请求路径
	 */
@ -164,4 +169,13 @@ public class MenuDO extends UuidIdentityEntityWithOperator {
	public void setParentName(String parentName) {
		this.parentName = parentName;
	}
	public Integer getType() {
		return type;
	}
	public void setType(Integer type) {
		this.type = type;
	}
}

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

@ -17,6 +17,7 @@ public class BaseRequestMapping {
        public static final String DOCINFO  = "/docInfo";
        public static final String CREATE  = "/create";
        public static final String getTemperature  = "/getTemperature";
        public static final String getDeviceInfo  = "/getDeviceInfo";
        public static final String getOffline  = "/getOffline";
        public static final String getFault  = "/getFault";
        public static final String getFlow  = "/getFlow";
@ -192,6 +193,7 @@ public class BaseRequestMapping {
        public static final String getDeviceListByUserId  = "/getDeviceListByUserId";
        public static final String getDeviceListWithUserId  = "/getDeviceListWithUserId";
        public static final String getDeviceInventoryRecordListWithUserId  = "/getDeviceInventoryRecordListWithUserId";
        public static final String getDeviceInventoryRecordListByDeviceId  = "/getDeviceInventoryRecordListByDeviceId";
        public static final String getInitDeviceByPage  = "/getInitDeviceByPage";
        public static final String getUserListByDeviceId  = "/getUserListByDeviceId";
        public static final String getOutOfStockDeviceList  = "/getOutOfStockDeviceList";
@ -226,9 +228,12 @@ public class BaseRequestMapping {
        public static final String selectMediicinecabineInventoryById="/selectMediicinecabineInventoryById";
        public static final String updateMediicinecabineInventoryInfoById = "/updateMediicinecabineInventoryInfoById";
        public static final String uploadDeviceInfo = "/uploadDeviceInfo";
        public static final String updateShipmentLogPic = "/updateShipmentLogPic";
        public static final String updateDeviceCargoState = "/updateDeviceCargoState";
        public static final String getDeviceList = "/getDeviceList";
        public static final String getDeviceInfo = "/getDeviceInfo";
        public static final String getDeviceOrderInfo = "/getDeviceOrderInfo";
        public static final String getDeviceStatistics = "/getDeviceStatistics";
        public static final String getDevicePriceStatistics = "/getDevicePriceStatistics";

+ 10 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/MenuVO.java

@ -17,6 +17,8 @@ public class MenuVO extends UuidIdentityVOWithOperator {
    private String name;
    @ApiModelProperty(value = "请求路径", example = "/usr/var")
    private String url;
    @ApiModelProperty(value = "1菜单0按钮", example = "1/0")
    private Integer type;
    @ApiModelProperty(value = "菜单图标", example = "icon")
    private String icon;
//    @ApiModelProperty(value = "请求方式", example = "get,post")
@ -135,4 +137,12 @@ public class MenuVO extends UuidIdentityVOWithOperator {
    public void setChecked(Boolean checked) {
        this.checked = checked;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}

+ 9 - 1
gateway/ag-basic/src/main/resources/application.yml

@ -29,7 +29,13 @@ spring:
      max-active: 8 # Max number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.
      max-idle: 8 # Max number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.
      max-wait: -1 # Maximum amount of time (in milliseconds) a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.
      min-idle: 1 # Target for the minimum number of idle connections to maintain in the pool. This settings only has an effect if it is positive.
      min-idle: 1 # Target for the minimum number of idle connections to maintain in the pool.This settings only has an effect if it is positive.
  http:
    multipart:
      maxFileSize: 100Mb
      maxRequestSize: 1000Mb
hystrix:
  command:
@ -39,6 +45,8 @@ hystrix:
          thread:
            timeoutInMilliseconds: 4800000
#Ribbon
ribbon:
  ReadTimeout: 600000

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MedicineDevicePrintMessageDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.base.dao.a2dao;
import com.yihu.jw.entity.a1entity.MedicineDeviceDelivery;
import com.yihu.jw.entity.a1entity.MedicineDevicePrintMessage;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface MedicineDevicePrintMessageDao extends PagingAndSortingRepository<MedicineDevicePrintMessage, String> {
    @Query("select a from MedicineDevicePrintMessage a where a.deviceId = ?1")
    MedicineDevicePrintMessage findDeviceId(String deviceId);
}

+ 2 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MedicineDrugInventoryRecordDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.base.dao.a2dao;
import com.yihu.jw.entity.a1entity.MedicineDrugInventoryRecord;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -9,6 +10,7 @@ import java.util.List;
public interface MedicineDrugInventoryRecordDao extends PagingAndSortingRepository<MedicineDrugInventoryRecord, String> {
    @Query("select a from MedicineDrugInventoryRecord a where a.deviceId = ?1 and a.equNum =?2 and a.type=?3 order by a.createTime desc")
    List<MedicineDrugInventoryRecord> findMedicineDrugInventoryRecordsByDeviceIdAndEquNumAndType(String deviceId, String euNum, String type);
}

+ 5 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicineDeviceDao.java

@ -34,8 +34,11 @@ public interface MediicineDeviceDao extends PagingAndSortingRepository<Mediicine
    Mediicinedevice findMediicinedeviceByEquNum(String equNum);
    @Query(value = "select * from t_mediicine_device as a where 1=1 limit ?1,?2 ",nativeQuery = true)
    Iterable<Mediicinedevice> findDeviceAll(int page, int size);
    @Query(value = "select a.* from t_mediicine_device as a where 1=1 and a.belong_community=?3 limit ?1,?2 ",nativeQuery = true)
    List<Mediicinedevice> findDeviceByCommunity(int page, int size,String belongCommunity);
    @Query(value = "select a.* from t_mediicine_device as a where 1=1 and a.equ_num=?3 limit ?1,?2 ",nativeQuery = true)
    List<Mediicinedevice> findDeviceByEquNum(int page, int size,String equNum);
    //查询已使用设备列表
    @Query("select a from Mediicinedevice a where a.del = 1 and a.belongCommunity is not null  ")

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicineorderDao.java

@ -32,6 +32,9 @@ public interface MediicineorderDao extends PagingAndSortingRepository<Mediicineo
    @Query("select a from Mediicineorder a where a.shippingEqu=?1 and a.sellState=1 order by a.shippingTime desc ")
    List<Mediicineorder> findByEquNum(String equNum);
    @Query("select a from Mediicineorder a where a.shippingEqu=?1 and a.shippingTime>=?2 and a.shippingTime<=?3 and a.sellState=1 order by a.shippingTime desc ")
    List<Mediicineorder> findByEquNumAndDate(String equNum,Date startTime,Date endTime);
    Mediicineorder findMediicineorderByPickUpNum(String pickUpNum);

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/MenuDao.java

@ -26,6 +26,9 @@ public interface MenuDao extends PagingAndSortingRepository<MenuDO, String>, Jpa
    @Query("select count(*) from MenuDO a where a.name = ?1 ")
    int isExistName(String name);
    @Query("select count(*) from MenuDO a where a.name = ?1 and a.parentId=?2")
    int isExistNameAndParentId(String name,String parentId);
    @Query("select count(*) from MenuDO a where a.parentId = ?1 ")
    int countMenuByParentId(String parentId);
}

+ 2 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleDao.java

@ -16,5 +16,7 @@ public interface RoleDao extends PagingAndSortingRepository<RoleDO, String>, Jpa
    List<RoleDO> findByNameAndStatus(String name,Integer status);
    List<RoleDO> findByStatus(Integer status);
    List<RoleDO> findByNameAndSaasIdAndStatus(String name,String saasId,Integer status);
}

+ 32 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDeviceEndpoint.java

@ -33,7 +33,7 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    @Autowired
    MedicinedeviceService deviceService;
    private  MedicinedeviceService deviceService;
    @Autowired
    private ObjectMapper objectMapper;
@ -529,18 +529,46 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseRequestMapping.BaseDevice.getDeviceInventoryRecordListWithUserId)
    @ApiOperation(value = "获取设备列表and补货记录夹带userId", notes = "获取设备列表and补货记录")
    public PageEnvelop getDeviceInventoryRecordListWithUserId(
                                                @ApiParam(name = "type", value = "日志类型", required = true)
                                                @RequestParam(value = "type") String type,
                                                @ApiParam(name = "type", value = "日志类型", required = false)
                                                @RequestParam(value = "type",required = false) String type,
                                                @ApiParam(name = "deviceId", value = "设备id", required = false)
                                                @RequestParam(value = "deviceId",required = false) String deviceId,
                                               @ApiParam(name = "userId", value = "用户id", required = true)
                                               @RequestParam(value = "userId") String userId,
                                               @ApiParam(name = "page", value = "页码", required = true, defaultValue = "1")
                                               @RequestParam(value = "page") int page,
                                               @ApiParam(name = "size", value = "分页大小", required = true, defaultValue = "15")
                                               @RequestParam(value = "size") int size) throws Exception {
        JSONObject result = deviceService.getDeviceInventoryRecordListWithUserId(type, userId, page, size);
        JSONObject result = deviceService.getDeviceInventoryRecordListWithUserId(type,deviceId, userId, page, size);
        return success(result.getJSONArray("msg"), result.getInteger("count"), page, size);
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getDeviceInventoryRecordListByDeviceId)
    @ApiOperation(value = "获取某台设备补货记录", notes = "获取某台设备补货记录")
    public PageEnvelop getDeviceInventoryRecordListByDeviceId(
            @ApiParam(name = "type", value = "日志类型1补货,2换货,3上架,4下架'", required = false)
            @RequestParam(value = "type",required = false) String type,
            @ApiParam(name = "deviceId", value = "设备id", required = false)
            @RequestParam(value = "deviceId",required = false) String deviceId,
            @ApiParam(name = "layerNo", value = "行", required = false)
            @RequestParam(value = "layerNo",required = false) String layerNo,
            @ApiParam(name = "wayerNo", value = "列", required = false)
            @RequestParam(value = "wayerNo",required = false) String wayerNo,
            @ApiParam(name = "startTime", value = "开始时间", required = false)
            @RequestParam(value = "startTime",required = false) String startTime,
            @ApiParam(name = "endTime", value = "结束时间", required = false)
            @RequestParam(value = "endTime",required = false) String endTime,
            @ApiParam(name = "drugName", value = "药品名称", required = false)
            @RequestParam(value = "drugName",required = false) String drugName,
            @ApiParam(name = "id", value = "记录id", required = false)
            @RequestParam(value = "id",required = false) String id,
            @ApiParam(name = "page", value = "页码", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "分页大小", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        return deviceService.selectInventoryRecordByDeviceId(id,deviceId,layerNo,wayerNo,type,startTime,endTime,drugName,page,size);
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getInitDeviceByPage)

+ 62 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDevicePrintMessageEndpoint.java

@ -0,0 +1,62 @@
package com.yihu.jw.base.endpoint.a4endpoint;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.service.a3service.MedicineOrderService;
import com.yihu.jw.base.service.a3service.MedicinedevicePrintMessageService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.a1entity.MedicineDevicePrintMessage;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.*;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/devicePrintMessage")
@Api(value = "设备打印设置", description = "设备打印设置", tags = {"设备打印设置"})
public class MedicineDevicePrintMessageEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private MedicinedevicePrintMessageService printMessageService;
    @PostMapping(value = "/saveAndUpdate")
    @ApiOperation(value = "新增和修改设备打印设置")
    public Envelop saveAndUpdate(
            @ApiParam(name = "json", value = "设备打印实体", required = true)
            @RequestParam(value = "json") String json,
            @ApiParam(name = "flag", value = "0全部1单个", required = true)
            @RequestParam(value = "flag") Integer flag) throws Exception {
        MedicineDevicePrintMessage medicineDevicePrintMessage = toEntity(json,MedicineDevicePrintMessage.class);
        return success(printMessageService.saveAndUpdate(medicineDevicePrintMessage,flag));
    }
    @GetMapping(value = "/selectById")
    @ApiOperation(value = "查询单个设备打印设置详情")
    public Envelop selectById(
            @ApiParam(name = "id", value = "设备打印Id", required = true)
            @RequestParam(value = "id") String id) throws Exception {
        return success(printMessageService.selectById(id));
    }
    @GetMapping(value = "/selectByCondition")
    @ApiOperation(value = "根据设备名称/设备编码查询设备打印列表")
    public Envelop selectByCondition(
            @ApiParam(name = "condition", value = "设备名称/设备编码", required = false)
            @RequestParam(value = "condition") String condition,
            @ApiParam(name = "page", value = "page", required = false)
            @RequestParam(value = "page", required = true)Integer page,
            @ApiParam(name = "size", value = "size", required = false)
            @RequestParam(value = "size", required = true)Integer size) throws Exception {
        return success(printMessageService.selectByCondition(condition,page,size,getUID()));
    }
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineOutEndpoint.java

@ -47,7 +47,7 @@ public class MedicineOutEndpoint extends EnvelopRestEndpoint {
    public Envelop createUp(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        JSONObject jsonObject =  stockoutService.createDetailOut(jsonData);
        JSONObject jsonObject =  stockoutService.createDetailOut(jsonData,getUNAME());
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }

+ 19 - 5
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineWarrayEndpoint.java

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.service.a3service.MedicineOrderService;
import com.yihu.jw.base.service.a3service.MedicineWarrayService;
import com.yihu.jw.entity.a1entity.Mediicinewarray;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -37,11 +38,24 @@ public class MedicineWarrayEndpoint extends EnvelopRestEndpoint {
    @Value("${wechat.id}")
    private String wechatId;
    @GetMapping(value = BaseRequestMapping.BaseWarray.getDeviceInfo)
    @ApiOperation(value = "预警获取设备信息")
    public Envelop getDeviceInfo(
            @ApiParam(name = "condition", value = "设备名称/设备编码")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "page", value = "页码", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "分页大小", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        JSONObject result = warraytService.getDeviceInfo(condition,page,size);
        return success(result);
    }
    @GetMapping(value = BaseRequestMapping.BaseWarray.getTemperature)
    @ApiOperation(value = "获取温度报警")
    public PageEnvelop getTemperature(
            @ApiParam(name = "idDevice", value = "设备id")
            @RequestParam(value = "idDevice", required = false) String idDevice,
            @ApiParam(name = "equNum", value = "设备编码")
            @RequestParam(value = "equNum", required = false) String equNum,
            @ApiParam(name = "equType", value = "设备分类")
            @RequestParam(value = "equType", required = false) String equType,
            @ApiParam(name = "networkStatus", value = "网络状态")
@ -56,11 +70,11 @@ public class MedicineWarrayEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "startTime",required = false) String startTime,
            @ApiParam(name = "endTime", value = "结束时间", required = false, defaultValue = "")
            @RequestParam(value = "endTime",required = false) String endTime,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @ApiParam(name = "page", value = "页码", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @ApiParam(name = "size", value = "分页大小", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        JSONObject result = warraytService.getTemperature(idDevice, equType,networkStatus, lowT, heightT, content,startTime, endTime,page,size,wechatId);
        JSONObject result = warraytService.getTemperature(equNum, equType,networkStatus, lowT, heightT, content,startTime, endTime,page,size);
        return success(result.getJSONArray("msg"),result.getInteger("count"),page,size);
    }

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

@ -0,0 +1,137 @@
package com.yihu.jw.base.endpoint.open.nologin;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.service.a3service.MedicineOrderService;
import com.yihu.jw.base.service.a3service.MedicineWarrayService;
import com.yihu.jw.base.service.a3service.MedicinedeviceService;
import com.yihu.jw.base.service.advrtisement.AdvertisementLaunchService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.a1entity.MedicineShipmentLog;
import com.yihu.jw.entity.adv.AdvertisementPuttingAdminDO;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
 * @author zmk
 * 业务不用加密访问居民PC端控制类
 * Created at 2019/12/25。
 */
@RestController
@RequestMapping(value = "/open/noEntry")
@Api(value = "业务不用登陆访问居民PC端控制类", description = "业务不用登陆访问居民PC端控制类")
public class BaseServiceNoEntryPoint extends EnvelopRestEndpoint {
    private static final Logger logger = LoggerFactory.getLogger(BaseServiceNoEntryPoint.class);
    @Autowired
    FileUploadService fileUploadService;
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
    @Value("${testPattern.sign}")
    private String isClose;
    @Value("${testPattern.remote_inner_url}")
    private String remote_inner_url;
    @Autowired
    MedicinedeviceService deviceService;
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM_IMG)
    @ApiOperation(value = "文件流上传图片", notes = "文件流上传图片")
    public ObjEnvelop<UploadVO> uploadImg(@ApiParam(value = "文件", required = true)
                                          @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
        // 得到文件的完整名称  xxx.txt
//        String originalFilename = file.getOriginalFilename();
//        InputStream inputStream = file.getInputStream();
//        UploadVO uploadVO = fileUploadService.uploadImg(inputStream,originalFilename,file.getSize(),fastdfs_file_url);
//        return success("上传成功", uploadVO);
        UploadVO uploadVO = new UploadVO();
        if (isClose.equalsIgnoreCase("1")){
            Map<String, Object> map = fileUploadService.uploadImg(file);
            uploadVO.setFullUri(map.get("accessory").toString());
        }else if(isClose.equals("2")){
            String originalFilename = file.getOriginalFilename();
            String[] fs = originalFilename.split("\\.");
            String type = fs[1];
            //内网上传
            String rs = fileUploadService.request(remote_inner_url,file,type);
            logger.info(rs);
            JSONObject json = JSON.parseObject(rs);
            uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
        }else {
            // 得到文件的完整名称  xxx.txt
            String originalFilename = file.getOriginalFilename();
            InputStream inputStream = file.getInputStream();
            uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
        }
        return success("上传成功", uploadVO);
    }
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STRING)
    @ApiOperation(value = "base64上传图片",notes = "base64上传图片")
    public ObjEnvelop<UploadVO> uploadImages(@ApiParam(name = "jsonData", value = "头像转化后的输入流")
                                             @RequestBody String jsonData) throws Exception {
        UploadVO uploadVO = fileUploadService.uploadImages(jsonData,fastdfs_file_url);
        return success("上传成功", uploadVO);
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.updateShipmentLogPic)
    @ApiOperation(value = "更新出货单信息-出货图片")
    public String updateShipmentLogPic(
            @ApiParam(name = "shipmentLogId", value = "出货单id", required = true)
            @RequestParam(value = "shipmentLogId", required = true) String shipmentLogId,
            @ApiParam(name = "picPath", value = "图片路径", required = true)
            @RequestParam(value = "picPath") String picPath) throws Exception {
        if (StringUtils.isEmpty(shipmentLogId) || StringUtils.isEmpty(picPath)){
            return "参数缺失";
        }
        if (!deviceService.updateShipmentLogPic(shipmentLogId, picPath)) {
            return "更新失败";
        }
        return "更新成功";
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.updateDeviceCargoState)
    @ApiOperation(value = "更新设备货道状态")
    public String updateDeviceCargoState(
            @ApiParam(name = "equNum", value = "设备编号", required = true)
            @RequestParam(value = "equNum", required = true) String equNum,
            @ApiParam(name = "layerNo", value = "层", required = true)
            @RequestParam(value = "layerNo") String layerNo,
            @ApiParam(name = "wayerNo", value = "列", required = true)
            @RequestParam(value = "wayerNo") String wayerNo,
            @ApiParam(name = "state", value = "目标货道状态", required = true)
            @RequestParam(value = "state") String state) throws Exception {
        if (StringUtils.isEmpty(equNum) || StringUtils.isEmpty(layerNo) || StringUtils.isEmpty(wayerNo) || StringUtils.isEmpty(state)){
            return "参数缺失";
        }
        if (!deviceService.updateDeviceCargoState(equNum, layerNo, wayerNo, state)) {
            return "更新失败";
        }
        return "更新成功";
    }
}

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

@ -2,20 +2,25 @@ package com.yihu.jw.base.endpoint.open.nologin;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.service.a3service.MedicineOrderService;
import com.yihu.jw.base.service.a3service.MedicineWarrayService;
import com.yihu.jw.base.service.a3service.MedicinedeviceService;
import com.yihu.jw.base.service.advrtisement.AdvertisementLaunchService;
import com.yihu.jw.base.service.role.RoleService;
import com.yihu.jw.base.service.user.UserService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.a1entity.MedicineShipmentLog;
import com.yihu.jw.entity.a1entity.Mediicinewarray;
import com.yihu.jw.entity.adv.AdvertisementLaunchDO;
import com.yihu.jw.entity.adv.AdvertisementPuttingAdminDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -23,7 +28,10 @@ import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -48,6 +56,10 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
    @Autowired
    MedicineWarrayService warrayService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private UserService userService;
    @GetMapping(value = "/devinfo")
    @ApiOperation(value = "获取单个设备上的所有广告")
@ -96,8 +108,16 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
            @ApiParam(name = "pickUpNum", value = "取药码")
            @RequestParam(value = "pickUpNum", required = false) String pickUpNum,
            @ApiParam(name = "cardNum", value = "社保卡号")
            @RequestParam(value = "cardNum", required = false) String cardNum
    ) {
            @RequestParam(value = "cardNum", required = false) String cardNum,
            @ApiParam(name = "ehcCard", value = "电子健康卡")
            @RequestParam(value = "ehcCard", required = false) String ehcCard
    ) throws Exception {
        if (StringUtils.isNoneBlank(ehcCard)){
            cardNum = orderservice.getEhcCardInfo(ehcCard);
            if (!StringUtils.isNoneBlank(cardNum)){
                return failed("电子健康卡扫码失败");
            }
        }
        JSONObject jsonObject =  orderservice.checkOrderAndReturn(deviceId, pickUpNum, cardNum);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
@ -114,8 +134,16 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
            @ApiParam(name = "pickUpNum", value = "取药码")
            @RequestParam(value = "pickUpNum", required = false) String pickUpNum,
            @ApiParam(name = "cardNum", value = "社保卡号")
            @RequestParam(value = "cardNum", required = false) String cardNum
    ) {
            @RequestParam(value = "cardNum", required = false) String cardNum,
            @ApiParam(name = "ehcCard", value = "电子健康卡")
            @RequestParam(value = "ehcCard", required = false) String ehcCard
    ) throws Exception {
        if (StringUtils.isNoneBlank(ehcCard)){
            cardNum = orderservice.getEhcCardInfo(ehcCard);
            if (!StringUtils.isNoneBlank(cardNum)){
                return failed("电子健康卡扫码失败");
            }
        }
        JSONObject jsonObject =  orderservice.checkOrderAndReturnOrderList(deviceId, pickUpNum, cardNum);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
@ -214,18 +242,26 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
            @ApiParam(name = "humidity", value = "湿度", required = false)
            @RequestParam(value = "humidity", required = false) Float humidity,
            @ApiParam(name = "type",value = "故障类型",required = false)
            @RequestParam(value = "type",required = false)String type) throws Exception {
            @RequestParam(value = "type",required = false)String type,
            @ApiParam(name = "remark",value = "故障详细内容")
            @RequestParam(value = "remark",required = false) String remark,
            @ApiParam(name = "shipCouont",value = "出货异常次数")
            @RequestParam(value = "shipCouont",required = false) Integer shipCouont,
            @ApiParam(name = "plusCouont",value = "串口异常次数")
            @RequestParam(value = "plusCouont",required = false) Integer plusCouont,
            @ApiParam(name = "otherCouont",value = "其他异常次数")
            @RequestParam(value = "otherCouont",required = false) Integer otherCouont) throws Exception {
        if (StringUtils.isEmpty(type)){
            Map<String,Object> mediicinewarray = warrayService.warning(equNum,temperature,humidity,type);
            if (mediicinewarray==null){
                return failed("请确认设备编码是否正确");
            }
            if (mediicinewarray.get("msg")==null){
                return success("设备正常");
                return success("不存在该设备");
            }
            return success(mediicinewarray.get("msg"));
        }
        return success(deviceService.uploadDeviceInfo(equNum, temperature, humidity, type));
        return success(deviceService.uploadDeviceInfo(equNum, temperature, humidity, type,remark, shipCouont, plusCouont, otherCouont));
    }
@ -239,10 +275,121 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
        return success(deviceService.getDeviceInfo(deviceId,day));
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getDeviceOrderInfo)
    @ApiOperation(value = "物联网大屏-获取某台设备订单详情")
    public Envelop getDeviceInfo(
            @ApiParam(name = "deviceId", value = "设备Id", required = true)
            @RequestParam(value = "deviceId", required = true) String deviceId,
            @ApiParam(name = "startTime", value = "开始时间", required = true)
            @RequestParam(value = "startTime", required = true) String startTime,
            @ApiParam(name = "endTime", value = "结束时间", required = true)
            @RequestParam(value = "endTime", required = true) String endTime) throws Exception {
        return success(deviceService.getDeviceOrderInfo(deviceId,startTime,endTime));
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getDeviceList)
    @ApiOperation(value = "物联网大屏-获取设备列表")
    public Envelop getDeviceList() throws Exception {
        return success(deviceService.getDeviceList());
    }
    @GetMapping(value = "roleDictList")
    @ApiOperation(value = "获取用户角色字典")
    public Envelop roleDictList() throws Exception {
        return success(roleService.selectRoleList());
    }
    @PostMapping(value = "addUser")
    @ApiOperation(value = "添加用户")
    public Envelop roleDictList(@ApiParam(name = "jsonData", value = "用户信息json", required = true)
                                    @RequestParam(value = "jsonData", required = true) String jsonData) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        return success(userService.addUserByIjk(jsonObject));
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.findMediicinecabinetInventoryByDeviceId)
    @ApiOperation(value = "根据设备id查询设备轨道数据", notes = "根据设备id查询设备轨道数据")
    public ListEnvelop selectById(
            @ApiParam(name = "deviceId", value = "设备id", required = true)
            @RequestParam(value = "deviceId", required = true) String deviceId) throws Exception {
        return success(deviceService.selectById(deviceId));
    }
    @RequestMapping("/fileUpload")
    @ApiOperation("文件上传")
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return "文件为空";
        }
        // 获取文件名
        String fileName = file.getOriginalFilename();
        System.out.println("上传的文件名为:" + fileName);
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        System.out.println("上传的后缀名为:" + suffixName);
        // 文件上传后的路径
        String filePath = "/data/";
        File dest = new File(filePath + fileName);
        // 检测是否存在目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dest);
            return "上传成功";
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "上传失败";
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.updateShipmentLogPic)
    @ApiOperation(value = "更新出货单信息-出货图片")
    public String updateShipmentLogPic(
            @ApiParam(name = "shipmentLogId", value = "出货单id", required = true)
            @RequestParam(value = "shipmentLogId", required = true) String shipmentLogId,
            @ApiParam(name = "picPath", value = "图片路径", required = true)
            @RequestParam(value = "picPath") String picPath) throws Exception {
        if (StringUtils.isEmpty(shipmentLogId) || StringUtils.isEmpty(picPath)){
            return "参数缺失";
        }
        if (!deviceService.updateShipmentLogPic(shipmentLogId, picPath)) {
            return "更新失败";
        }
        return "更新成功";
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.updateDeviceCargoState)
    @ApiOperation(value = "更新设备货道状态")
    public String updateDeviceCargoState(
            @ApiParam(name = "equNum", value = "设备编号", required = true)
            @RequestParam(value = "equNum", required = true) String equNum,
            @ApiParam(name = "layerNo", value = "层", required = true)
            @RequestParam(value = "layerNo") String layerNo,
            @ApiParam(name = "wayerNo", value = "列", required = true)
            @RequestParam(value = "wayerNo") String wayerNo,
            @ApiParam(name = "state", value = "目标货道状态", required = true)
            @RequestParam(value = "state") String state) throws Exception {
        if (StringUtils.isEmpty(equNum) || StringUtils.isEmpty(layerNo) || StringUtils.isEmpty(wayerNo) || StringUtils.isEmpty(state)){
            return "参数缺失";
        }
        if (!deviceService.updateDeviceCargoState(equNum, layerNo, wayerNo, state)) {
            return "更新失败";
        }
        return "更新成功";
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.FINDBYID)
    @ApiOperation(value = "根据设备编码获取设备信息", notes = "根据设备编码获取设备信息")
    public Envelop getdevicedetail(
            @ApiParam(name = "equNum", value = "设备编码", required = true)
            @RequestParam(value = "equNum") String equNum) throws Exception {
        return success(deviceService.findByEquNum(equNum));
    }
}

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java

@ -49,7 +49,7 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        MenuDO menuDO = toEntity(jsonData, MenuDO.class);
        int count = menuService.isExistName(menuDO.getName());
        int count = menuService.isExistNameAndParentId(menuDO.getName(),menuDO.getParentId());
        if(count>0){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
        }
@ -103,7 +103,7 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
        if (null == menuDO.getId()) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), Envelop.class);
        }
        int count = menuService.isExistName(menuDO.getName());
        int count = menuService.isExistNameAndParentId(menuDO.getName(),menuDO.getParentId());
        if(count>1){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
        }

+ 4 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java

@ -62,7 +62,7 @@ public class MedOrderService {
            mediicineorder.setCommunity(hospitalDO.getName());
            mediicineorder.setUserId(params.getString("user_id"));
            mediicineorder.setShopNo(params.getString("shop_no"));
            mediicineorder.setPrescribeNum(params.getString("rx_no"));
            mediicineorder.setPrescribeNum(order);
            mediicineorder.setAddress(params.getString("rx_patient_address"));
            mediicineorder.setContact(params.getString("rx_patient_phone"));
            mediicineorder.setIdNum(params.getString("rx_patient_identity"));
@ -77,10 +77,11 @@ public class MedOrderService {
            mediicineorder.setDeptNum(params.getString("rx_department_no"));
            mediicineorder.setDeptName(params.getString("rx_department_name"));
            mediicineorder.setDoctorNum(params.getString("rx_doctor_no"));
            mediicineorder.setDeptName(params.getString("rx_doctor_name"));
            mediicineorder.setDoctorName(params.getString("rx_doctor_name"));
            mediicineorder.setDoctorAdvice(params.getString("rx_doctoradvice"));
            mediicineorder.setAllergyInfo(params.getString("rx_allergy_info"));
            mediicineorder.setPickUpNum(order);
            mediicineorder.setOrderSource("厦门i健康");
            mediicineorder.setAmount(params.getString("orderAmount"));
            mediicineorder.setSocialSecurityCardNum(params.getString("SecurityCardNum"));
            mediicineorder.setSocialinsurPayment(params.getString("socialinsurPayment"));
@ -104,6 +105,7 @@ public class MedOrderService {
                mediicineorderdetail.setUseRate(jsonObject.getString("drug_use_rate"));
                mediicineorderdetail.setUseDose(jsonObject.getString("drug_use_dose"));
                mediicineorderdetail.setUnit(jsonObject.getString("drug_use_unit"));
                mediicineorderdetail.setMedInfo(jsonObject.getString("package_uint"));
                mediicineorderdetail.setUseWayAdd(jsonObject.getString("drug_use_way_add"));
                mediicineorderdetail.setManufactor(jsonObject.getString("drug_firm_name"));
                mediicineorderdetail.setGoodsName(jsonObject.getString("drug_name"));

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineDrugsService.java

@ -199,6 +199,9 @@ public class MedicineDrugsService extends BaseJpaService<Mediicinedrugs, Mediici
        JSONObject result = new JSONObject();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        String belongCommunitys = "";
        String tempSql = "";
        //获取管理员所在社区id字符串

+ 284 - 98
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -3,6 +3,7 @@ package com.yihu.jw.base.service.a3service;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.yihu.jw.base.dao.a2dao.*;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.user.UserDao;
@ -12,17 +13,31 @@ import com.yihu.jw.entity.a1entity.*;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.DmHospitalDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import com.yihu.jw.entity.hospital.httplog.YlzHttpLogDO;
import com.yihu.jw.entity.wlyyinfo.OauthWlyyConfigDO;
import com.yihu.jw.hospital.HospitalDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
import com.yihu.jw.hospital.prescription.dao.OauthCaConfigDao;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wlyy.dao.OauthWlyyConfigDao;
import com.yihu.mysql.query.BaseJpaService;
import com.ylzinfo.onepay.sdk.utils.StringUtil;
import jxl.format.VerticalAlignment;
import jxl.write.*;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections4.IterableUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -37,12 +52,16 @@ import java.util.*;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import static jxl.biff.BaseCellFeatures.logger;
/**
 * Created by Bing on 2021/9/23.
 */
@Service
public class MedicineOrderService extends BaseJpaService<Mediicineorder, MediicineorderDao> {
    private final org.slf4j.Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private MediicineorderDao orderDao;
    @Autowired
@ -79,6 +98,19 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private OauthWlyyConfigDao oauthWlyyConfigDao;
    @Autowired
    private HttpClientUtil httpClientUtil;
    @Autowired
    private WlyyHttpLogDao httpLogDao;
    @Autowired
    private MedicineDevicePrintMessageDao printMessageDao;
    @Autowired
    private WlyyHospitalSysDictDao hospitalSysDictDao;
    /**
     * 新增药品信息
@ -187,6 +219,9 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        //订单列表
        List<Map<String, Object>> orderList = null;
        String conditionSql = "";
@ -287,7 +322,8 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                "    t.allergy_info AS allergyInfo,\n" +
                "    t.info AS info,\n" +
                "    t.social_security_card_num AS socialSecurityCardNum,\n" +
                "    t.belong_community AS belongCommunity\n" +
                "    t.belong_community AS belongCommunity, \n" +
                "    t.community AS community\n" +
                "FROM\n" +
                "    t_mediicine_order AS t left join t_mediicine_device tmd on t.shipping_equ = tmd.equ_num where 1=1 \n";
@ -323,7 +359,7 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        if (!StringUtils.isEmpty(dispensingWindow)) {
            conditionSql += " and t.dispensing_window = '" + dispensingWindow + "'";
        }
        sencodSql = sencodSql + conditionSql;
        sencodSql = sencodSql + conditionSql + " order by  t.prescribe_time desc,t.sell_state asc ";
        orderList = hibenateUtils.createSQLQuery(sencodSql, page, size);
@ -780,6 +816,8 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            if (Integer.compare(totalShipmentLog, shipped + 1) == 0) {
                Mediicineorder order = orderDao.findOne(medicineShipmentLog.getOrderId());
                order.setSellState("1");
                Boolean flag = scanQrdispensaryCode(order.getPickUpNum());
                logger.info("flag"+flag);
                orderDao.save(order);
            }
            if (Integer.compare(totalShipmentLog, shipped + 1) < 0) {
@ -892,6 +930,177 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        result.put("msg", "订单未完成,请联系管理员!");
        return result;
    }
    //=================================调用i健康接口=================================//
    public String getEhcCardInfo(String ehealthCode) throws Exception {
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("EHCVerify");
        //token获取accesstoken
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("appid", oauthWlyyConfigDO.getAppId()));
        params.add(new BasicNameValuePair("appSecret",oauthWlyyConfigDO.getAppSecret()));
        String res = httpClientUtil.post(oauthWlyyConfigDO.getTokenUrl(),params,"UTF-8");
        String token = null;
        JSONObject rsjson = JSONObject.parseObject(res);
        logger.info("checkWlyyDoctor token :"+rsjson.toString());
        Integer status = rsjson.getInteger("status");
        if(status==10000){
            //设置入参
            List<NameValuePair> p = new ArrayList<>();
            p.add(new BasicNameValuePair("ehealthCode", ehealthCode));
            //设置头部
            token = rsjson.getJSONObject("result").getString("accesstoken");
            Map<String,Object> headerMap = new HashedMap();
            headerMap.put("accesstoken",token);
            String rs = httpClientUtil.headerPost(oauthWlyyConfigDO.getUrl(),p,"UTF-8",headerMap);
            WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
            wlyyHttpLogDO.setCode("EHCVerify");
            wlyyHttpLogDO.setRequest(p.toString());
            wlyyHttpLogDO.setResponse(rs);
            wlyyHttpLogDO.setName("电子健康卡扫码读取");
            wlyyHttpLogDO.setStatus("1");
            wlyyHttpLogDO.setCreateTime(new Date());
            httpLogDao.save(wlyyHttpLogDO);
            logger.info("checkWlyyDoctor EHCVerify :"+rs);
            if (rs!=null&&rs!=""){
                JSONObject ehc = JSONObject.parseObject(rs);
                if (ehc.getString("ret_code").equalsIgnoreCase("0000")){
                    JSONObject biz = ehc.getJSONObject("biz_content");
                    String cardNo = biz.getString("card_no");
                    if (cardNo!=null&&cardNo!=""){
                        return cardNo;
                    }else {
                        return null;
                    }
                }else {
                    return null;
                }
            }else {
                return null;
            }
        }else {
            return null;
        }
    }
    public boolean scanQrdispensaryCode(String code){
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("scanQrdispensaryCode");
        //token获取accesstoken
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("appid", oauthWlyyConfigDO.getAppId()));
        params.add(new BasicNameValuePair("appSecret",oauthWlyyConfigDO.getAppSecret()));
        String res = httpClientUtil.post(oauthWlyyConfigDO.getTokenUrl(),params,"UTF-8");
        String token = null;
        JSONObject rsjson = JSONObject.parseObject(res);
        logger.info("checkWlyyDoctor token :"+rsjson.toString());
        Integer status = rsjson.getInteger("status");
        if(status==10000){
            //设置入参
            List<NameValuePair> p = new ArrayList<>();
            p.add(new BasicNameValuePair("code", code));
            //设置头部
            token = rsjson.getJSONObject("result").getString("accesstoken");
            Map<String,Object> headerMap = new HashedMap();
            headerMap.put("accesstoken",token);
            String rs = httpClientUtil.headerPost(oauthWlyyConfigDO.getUrl(),p,"UTF-8",headerMap);
            WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
            wlyyHttpLogDO.setCode("scanQrdispensaryCode");
            wlyyHttpLogDO.setRequest(p.toString());
            wlyyHttpLogDO.setResponse(rs);
            wlyyHttpLogDO.setName("更新取药码状态");
            wlyyHttpLogDO.setStatus("1");
            wlyyHttpLogDO.setCreateTime(new Date());
            httpLogDao.save(wlyyHttpLogDO);
            logger.info("scanQrdispensaryCode:"+rs);
            if (rs!=null&&rs!=""){
                JSONObject ehc = JSONObject.parseObject(rs);
                if (ehc.getString("status").equalsIgnoreCase("200")){
                    return true;
                }
            }else {
                return false;
            }
        }else {
            return false;
        }
        return false;
    }
    /**
     *
     * @param idcard 医生身份证
     * @param type 固定传9
     * @param jumpUrl jumpUrl 点击链接不跳转就传“”
     * @param first 消息头
     * @param remark 消息尾
     * @param keywords 消息体
     * @return
     */
    public boolean sendDoctorTemplates(String idcard,String type,String jumpUrl,String first,String remark,String keywords){
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("sendDoctorTemplates");
        //token获取accesstoken
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("appid", oauthWlyyConfigDO.getAppId()));
        params.add(new BasicNameValuePair("appSecret",oauthWlyyConfigDO.getAppSecret()));
        String res = httpClientUtil.post(oauthWlyyConfigDO.getTokenUrl(),params,"UTF-8");
        String token = null;
        JSONObject rsjson = JSONObject.parseObject(res);
        logger.info("checkWlyyDoctor token :"+rsjson.toString());
        Integer status = rsjson.getInteger("status");
        if(status==10000){
            //设置入参
            List<NameValuePair> p = new ArrayList<>();
            p.add(new BasicNameValuePair("idcard", idcard));
            p.add(new BasicNameValuePair("type", "9"));
            p.add(new BasicNameValuePair("jumpUrl", jumpUrl));
            p.add(new BasicNameValuePair("first", first));
            p.add(new BasicNameValuePair("remark", remark));
            p.add(new BasicNameValuePair("keywords", keywords));
            //设置头部
            token = rsjson.getJSONObject("result").getString("accesstoken");
            Map<String,Object> headerMap = new HashedMap();
            headerMap.put("accesstoken",token);
            String rs = httpClientUtil.headerPost(oauthWlyyConfigDO.getUrl(),p,"UTF-8",headerMap);
            WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
            wlyyHttpLogDO.setCode("sendDoctorTemplates");
            wlyyHttpLogDO.setRequest(p.toString());
            wlyyHttpLogDO.setResponse(rs);
            wlyyHttpLogDO.setName("发送医生智能助手模板消息");
            wlyyHttpLogDO.setStatus("1");
            wlyyHttpLogDO.setCreateTime(new Date());
            httpLogDao.save(wlyyHttpLogDO);
            logger.info("sendDoctorTemplates:"+rs);
            if (rs!=null&&rs!=""){
                JSONObject ehc = JSONObject.parseObject(rs);
                if (ehc.getString("status").equalsIgnoreCase("200")){
                    return true;
                }
            }else {
                return false;
            }
        }else {
            return false;
        }
        return false;
    }
    //=================================调用i健康接口=================================//
    /**
@ -1020,12 +1229,32 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                    "\tt.order_id = '" + mediicineorder.getId() + "'";
            List<Map<String, Object>> tempList = hibenateUtils.createSQLQuery(tempSql);
            jsonObject.put("community", dmHospitalDO == null ? "" : dmHospitalDO.getName());
            jsonObject.put("phone", "123456");
            MedicineDevicePrintMessage devicePrintMessage = printMessageDao.findDeviceId(deviceId);
            if (devicePrintMessage==null){
                WlyyHospitalSysDictDO hospitalSysDictDO = hospitalSysDictDao.findById("printSys");
                if (hospitalSysDictDO!=null){
                    JSONObject object = JSONObject.parseObject(hospitalSysDictDO.getDictValue());
                    jsonObject.put("phone", object.getString("phone"));
                    jsonObject.put("remark",object.getString("remark"));
                    jsonObject.put("qrCodeContent", object.getString("qrCodeContent"));
                    jsonObject.put("info", object.getString("info"));
                }else {
                    jsonObject.put("phone", "123456");
                    jsonObject.put("remark", "若未取到货物,请您扫描小票二维码申请退款。\n谢谢慢走,祝您生活愉快!");
                    jsonObject.put("qrCodeContent", "谢谢慢走,祝您生活愉快!");
                    jsonObject.put("info","community,phone,equNum,shipTime");
                }
            }else {
                jsonObject.put("phone",devicePrintMessage.getPhone());
                jsonObject.put("remark",devicePrintMessage.getRemark());
                jsonObject.put("qrCodeContent", devicePrintMessage.getPicture());
                jsonObject.put("info",devicePrintMessage.getInfo());
            }
            jsonObject.put("num", mediicineorder.getPrescribeNum());
            jsonObject.put("date", DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
            jsonObject.put("time", DateUtil.dateToStr(new Date(), "HH:mm:ss"));
            jsonObject.put("remark", "若未取到货物,请您扫描小票二维码申请退款。\n谢谢慢走,祝您生活愉快!");
            jsonObject.put("qrCodeContent", "谢谢慢走,祝您生活愉快!");
            jsonObject.put("list", tempList);
            jsonObject.put("status", 1);
            result.put("response", ConstantUtils.SUCCESS);
@ -1364,15 +1593,35 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                result.put("response", ConstantUtils.FAIL);
                return result;
            }
            MedicineDevicePrintMessage devicePrintMessage = printMessageDao.findDeviceId(deviceId);
            if (devicePrintMessage==null){
                WlyyHospitalSysDictDO hospitalSysDictDO = hospitalSysDictDao.findById("printSys");
                if (hospitalSysDictDO!=null){
                    JSONObject object = JSONObject.parseObject(hospitalSysDictDO.getDictValue());
                    map.put("phone", object.getString("phone"));
                    map.put("remark",object.getString("remark"));
                    map.put("qrCodeContent", object.getString("qrCodeContent"));
                    map.put("info", object.getString("info"));
                }else {
                    map.put("phone", "123456");
                    map.put("remark", "若未取到货物,请您扫描小票二维码申请退款。\n谢谢慢走,祝您生活愉快!");
                    map.put("qrCodeContent", "谢谢慢走,祝您生活愉快!");
                    map.put("info","community,phone,equNum,shipTime");
                }
            }else {
                map.put("phone",devicePrintMessage.getPhone());
                map.put("remark",devicePrintMessage.getRemark()+"\n"+devicePrintMessage.getRemarkEnd());
                map.put("qrCodeContent", devicePrintMessage.getPicture());
                map.put("info",devicePrintMessage.getInfo());
            }
            map.put("doctorName",order.getDoctorName());
            map.put("prescriptionDate",DateUtil.dateToStrLong(order.getPrescribeTime()));
            map.put("orderId", order.getId());
            map.put("prescribeNum", order.getPrescribeNum());
            map.put("community", dmHospitalDO == null ? "" : dmHospitalDO.getName());
            map.put("phone", "123456");
            map.put("num", order.getPrescribeNum());
            map.put("date", DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
            map.put("time", DateUtil.dateToStr(new Date(), "HH:mm:ss"));
            map.put("remark", "若未取到货物,请您扫描小票二维码申请退款。\n谢谢慢走,祝您生活愉快!");
            map.put("qrCodeContent", "谢谢慢走,祝您生活愉快!");
            if ("1".equals(order.getSellState())) {
                map.put("status", 1);
                map.put("statusName", "已取药");
@ -1679,96 +1928,22 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
    public MixEnvelop getSumAmount(String belongCommunity, String equNum, int page, int size) {
        List<Map<String,Object>> mapList=new ArrayList<>();
        //查询出所有的设备
        if (!org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)&&!org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)) {
            page=(page-1)*size;
            Iterable<Mediicinedevice> mediicinedevices = deviceDao.findDeviceAll(page, size);
            for (Mediicinedevice mediicinedevice : mediicinedevices) {
                Map<String, Object> map = new HashMap<>();
                map.put("community", mediicinedevice.getCommunity());
                map.put("equName", mediicinedevice.getEquNum() + (mediicinedevice.getEquName() == null ? "" : "/" + mediicinedevice.getEquName()));
                String oneSql = "SELECT SUM(t.amount) AS sumAmount,\n" +
                        "                COUNT(*) AS count,\n" +
                        "                t.shipping_equ AS equNum\n" +
                        "                FROM t_mediicine_order  t WHERE t.sell_state = 1 AND t.shipping_equ = '" + mediicinedevice.getEquNum() + "'";
                List<Map<String,Object>> list = hibenateUtils.createSQLQuery(oneSql);
                for (Map<String,Object> oneMap:list){
                    String count = oneMap.get("count")==null?"0":oneMap.get("count").toString();
                    String sumAmount=oneMap.get("sumAmount")==null?"0":oneMap.get("sumAmount").toString();
                    float price = Float.parseFloat(sumAmount);
                    BigDecimal b  =   new  BigDecimal(price);
                    float   m_price   =  b.setScale(2,  BigDecimal.ROUND_HALF_UP).floatValue();
                    map.put("ordercount",count);
                    map.put("sumAmount",m_price);
                }
                mapList.add(map);
            }
            String countSql = " select " +
                    "     COUNT(DISTINCT (t.id)) as count " +
                    "   from " +
                    "     t_mediicine_device as t " +
                    "  where " +
                    "  1=1   " ;
            Logger.getAnonymousLogger().info("finalCountSql="+countSql);
            int decCount = jdbcTemplate.queryForObject(countSql,Integer.class);
            //总页数
            int total=decCount/size+(decCount%size>0?1:0);
            MixEnvelop mixEnvelop = MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,mapList);
            mixEnvelop.setTotalCount(decCount);
            mixEnvelop.setTotalPage(total);
            return mixEnvelop;
        }
        //将同一个设备的社区/名称/设备编码/历史记录/总金额放到一个Map中,并将这些Map放到同一个list中返回
            Map<String,Object> map=new HashMap<>();
            String oneSql="SELECT SUM(t.amount) AS sumAmount,\n" +
        page=(page-1)*size;
        List<Mediicinedevice> mediicinedevices = new ArrayList<>();
        if(org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)&& !org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            mediicinedevices= deviceDao.findDeviceByCommunity(page, size,belongCommunity);
        }else if(org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)&& org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            mediicinedevices= deviceDao.findDeviceByEquNum(page, size,equNum);
        }
        for (Mediicinedevice mediicinedevice : mediicinedevices) {
            Map<String, Object> map = new HashMap<>();
            map.put("community", mediicinedevice.getCommunity());
            map.put("equName", mediicinedevice.getEquNum() + (mediicinedevice.getEquName() == null ? "" : "/" + mediicinedevice.getEquName()));
            String oneSql = "SELECT SUM(t.amount) AS sumAmount,\n" +
                    "                COUNT(*) AS count,\n" +
                    "                t.shipping_equ AS equNum\n" +
                    "                FROM t_mediicine_order  t WHERE t.sell_state = 1 ";
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)){
                oneSql += "AND t.belong_community = '"+belongCommunity+"' ";
                if (!org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
                    Mediicinedevice device=deviceDao.findByBelongCommunity(belongCommunity);
                    if (device==null){
                        return MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,new ArrayList());
                    }
                    map.put("community",device.getCommunity());
                    map.put("equName",device.getEquNum()+(device.getEquName()==null?"":"/"+device.getEquName()));
                }else {
                    oneSql += "AND t.shipping_equ = '" + equNum + "'";
                    Mediicinedevice device=deviceDao.findByBelongCommunityAndEquNum(belongCommunity,equNum);
                    if (device==null){
                        return MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,new ArrayList());
                    }
                    map.put("community",device.getCommunity());
                    map.put("equName",device.getEquNum()+(device.getEquName()==null?"":"/"+device.getEquName()));
                }
            }else {
                if (!org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
//                    Mediicinedevice device=deviceDao.findByBelongCommunity(belongCommunity);
//                    map.put("community",device.getCommunity());
                }else {
                    oneSql += "AND t.shipping_equ = '" + equNum + "'";
                    Mediicinedevice device=deviceDao.findMediicinedeviceByEquNum(equNum);
                    if (device==null){
                        return MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,new ArrayList());
                    }
                    map.put("community",device.getCommunity());
                    map.put("equName",device.getEquNum()+(device.getEquName()==null?"":"/"+device.getEquName()));
                }
            }
//            if (org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
//                oneSql += "AND t.shipping_equ = '" + equNum + "'";
//                Mediicinedevice daoByEquNum=deviceDao.findMediicinedeviceByEquNum(equNum);
//                map.put("equName",daoByEquNum.getEquNum()+(daoByEquNum.getEquName()==null?"":"/"+daoByEquNum.getEquName()));
//            }else {
//                map.put("equName",mediicinedevice.getEquNum()+(mediicinedevice.getEquName()==null?"":"/"+mediicinedevice.getEquName()));
//            }
//            if (org.apache.commons.lang3.StringUtils.isNoneBlank(startTime)){
//                oneSql += "AND t.shipping_time >= "+ startTime  ;
//            }
//            if (org.apache.commons.lang3.StringUtils.isNoneBlank(endTime)){
//                oneSql += "AND t.shipping_time <= "+ endTime ;
//            }
                    "                FROM t_mediicine_order  t WHERE t.sell_state = 1 AND t.shipping_equ = '" + mediicinedevice.getEquNum() + "'";
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(oneSql);
            for (Map<String,Object> oneMap:list){
                String count = oneMap.get("count")==null?"0":oneMap.get("count").toString();
@ -1780,9 +1955,20 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                map.put("sumAmount",m_price);
            }
            mapList.add(map);
        }
        String countSql = " select " +
                "     COUNT(DISTINCT (t.id)) as count " +
                "   from " +
                "     t_mediicine_device as t " +
                "  where " +
                "  1=1   " ;
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int decCount = jdbcTemplate.queryForObject(countSql,Integer.class);
        //总页数
        int total=decCount/size+(decCount%size>0?1:0);
        MixEnvelop mixEnvelop = MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,mapList);
        mixEnvelop.setTotalPage(mapList.size()/size+(mapList.size()%size==0?0:1));
        mixEnvelop.setTotalCount(mapList.size());
        mixEnvelop.setTotalCount(decCount);
        mixEnvelop.setTotalPage(total);
        return mixEnvelop;
    }

+ 4 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineServive.java

@ -11,6 +11,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -25,6 +26,8 @@ public class MedicineServive {
    private HttpClientUtil httpClientUtil;
    @Autowired
    private MediicinedrugsDao mediicinedrugsDao;
    @Value("${medicine.socketUrl}")
    private String socketUrl;
    public void getOrgPhysicDict(String orgCode, String name, String orgName, String physicCode) {
@ -108,7 +111,7 @@ public class MedicineServive {
        param += "?temperatureControl=" + temperatureControl;
        param += "?humidityControl=" + humidityControl;
        param += "?heat=" + heat;
        String res = httpClientUtil.get("http://yik.ab-inbev.vip/c/upws/send"+param,"utf-8");
        String res = httpClientUtil.get(socketUrl+param,"utf-8");
       System.out.println(res);
        /* if (StringUtils.isNoneBlank(res)){
            object =JSONObject.parseObject(res);

+ 37 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockOutService.java

@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -46,6 +47,9 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
    @Autowired
    private MediicinestockupDao upDao;
    @Autowired
    private MediicinestockupdetailDao mediicinestockupdetailDao;
    @Autowired
    private UserDao userDao;
    @Autowired
@ -64,7 +68,7 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public JSONObject createDetailOut(String jsonData) {
    public JSONObject createDetailOut(String jsonData,String userName) {
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(jsonData)){
@ -97,6 +101,8 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
        UserDO userDO = userDao.findById(obj.getReplenishEr());
        mediicinestockup.setReplenishErName(userDO.getName());
        mediicinestockup.setState("1");
        mediicinestockup.setReplenishEr(obj.getReplenishEr());
        upDao.save(mediicinestockup);
@ -107,10 +113,14 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
        mediicinestockout.setReceiveState("0");
        mediicinestockout.setRemark(obj.getRemark());
        mediicinestockout.setReplenishEr(obj.getReplenishEr());
        mediicinestockout.setReplenishErName(userDO.getName());
        mediicinestockout.setReplenishEqu(mediicinedevice.getId());
        mediicinestockout.setReplenishEquName(mediicinedevice.getEquName());
        mediicinestockout.setDocNum(String.valueOf(System.currentTimeMillis()));
        mediicinestockout.setDocTime(new Date());
        mediicinestockout.setCommunity(mediicinedevice.getBelongCommunity());
        mediicinestockout.setCommunityName(mediicinedevice.getCommunity());
        mediicinestockout.setAddress(mediicinedevice.getDetailAddress());
        //待补品类
        mediicinestockout.setReplenishCate(String.valueOf(obj.getDrugs().size()));
@ -118,7 +128,10 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
        mediicinestockout.setReplenishInventory(obj.getDrugs().stream().reduce(0, (sum, p) -> sum += p.getQty() , Integer::sum).toString());
        //备货单号
        mediicinestockout.setUpNum(obj.getUpId());
        outDao.save(mediicinestockout);
        mediicinestockout.setCreateUserName(userName);
        mediicinestockout = outDao.save(mediicinestockout);
        List<Mediicinestockupdetail> mediicinestockupdetailList = mediicinestockupdetailDao.getoutdetail(obj.getUpId());
        Double price = 0.0;
        for (DrugDO drug : obj.getDrugs()) {
            Mediicinedrugs mediicinedrugs = drugsDao.findOne(drug.getDrugId());
            Mediicinestockoutdetail mediicinestockoutdetail = new Mediicinestockoutdetail();
@ -130,7 +143,17 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
            mediicinestockoutdetail.setQuantity(drug.getQty().toString());
            mediicinestockoutdetail.setProductPic(mediicinedrugs.getPic());
            outdetailDao.save(mediicinestockoutdetail);
            for (Mediicinestockupdetail mediicinestockupdetail:mediicinestockupdetailList){
                if (mediicinedrugs.getDrugCode().equalsIgnoreCase(mediicinestockupdetail.getDrugCode())){
                    mediicinestockupdetail.setWareHouses(drug.getQty().toString());
                    mediicinestockupdetailDao.save(mediicinestockupdetail);
                }
            }
            price+=drug.getQty()*mediicinedrugs.getPrice();
        }
        DecimalFormat df = new DecimalFormat("#0.00");
        mediicinestockout.setPrice(df.format(price));
        outDao.save(mediicinestockout);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg",ConstantUtils.SUCCESS);
        return result;
@ -280,6 +303,9 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
        JSONObject result = new JSONObject();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        String conditionSql = "";
        if ("replenisher".equals(role.getCode())) {
            conditionSql += " AND t.replenish_er = '" + userId + "'\n";
@ -332,7 +358,7 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
            }
        }
        String sql="SELECT\n" +
                "    tmd.name as replenishEquName,\n" +
                "    tmd.equ_name as replenishEquName,\n" +
                "    t.id as id,\n" +
                "    t.address as address,\n" +
                "    t.community as community,\n" +
@ -356,7 +382,7 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
                "    t.update_user_name as updateUserName,\n" +
                "    t.up_num as upNum\n" +
                "FROM\n" +
                "    t_mediicine_stockout AS t LEFT JOIN base_user bu ON t.replenish_er = bu.id LEFT JOIN t_mediicine_device tmd on t.replenish_equ = tmd.id  where 1=1";
                "    t_mediicine_stockout AS t LEFT JOIN  base_user bu ON t.replenish_er = bu.id LEFT JOIN t_mediicine_device tmd on t.replenish_equ = tmd.id  where 1=1 ";
        if (org.apache.commons.lang.StringUtils.isNotBlank(startTime)&& org.apache.commons.lang.StringUtils.isNotBlank(endTime)){
//            conditionSql += "  AND  t.prescribe_time BETWEEN to_date('" + startTime +"','yyyy-mm-dd hh24:mi:ss') " +
//                    " AND to_date('" + endTime + "','yyyy-mm-dd hh24:mi:ss')";
@ -367,14 +393,15 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
            conditionSql += " and t.receive_state = '" + receiveState + "'";
        }
        if (!StringUtils.isEmpty(replenishEr)){
            conditionSql += " AND CONCAT(IFNULL(bu.`name`,''),IFNULL(bu.`mobile`,'') LIKE '%" + replenishEr + "%'";
            conditionSql += " AND (bu.name like '%"+replenishEr+"%' or bu.mobile LIKE '%"+replenishEr+"%')  ";
        }
        if (!StringUtils.isEmpty(docNum)){
            conditionSql += " and t.doc_num like '%" + docNum + "%'";
        }
        sql = sql + conditionSql;
        sql = sql + conditionSql +" order by t.receive_state asc,t.doc_time desc ";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql,page,size);
        String countSql = " select " +
@ -397,6 +424,10 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
                    }
                }
            }
            Mediicinestockup mediicinestockup = upDao.findOne(map.get("upNum").toString());
            if (mediicinestockup!=null){
                map.put("upNo",mediicinestockup.getDocNum());
            }
        }
        result.put("count", count);
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));

+ 16 - 8
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockUpService.java

@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -89,11 +90,13 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
            Mediicinestockup mediicinestockup = new Mediicinestockup();
            //社区
            mediicinestockup.setCommunity(mediicinedevice.getBelongCommunity());
            mediicinestockup.setCommunityName(mediicinedevice.getCommunity());
            mediicinestockup.setDocTime(new Date());
            mediicinestockup.setDocNum(String.valueOf(System.currentTimeMillis()));
            //待补品类,
            mediicinestockup.setReplenishCate(String.valueOf(upDO.getDrugs().size()));
            mediicinestockup.setReplenishEqu(upDO.getDeviceId());
            mediicinestockup.setReplenishEquName(mediicinedevice.getEquName());
            //备货单状态, 1已生成, 2未生成, 3 删除
            mediicinestockup.setState("2");
            mediicinestockup.setReplenishInventory(String.valueOf(upDO.getDrugs().stream().mapToInt(DrugDO::getQty).sum()));
@ -110,7 +113,10 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
                mediicinestockupdetail.setOrgCode(mediicinedrugs.getOrgCode());
                mediicinestockupdetail.setDrugId(mediicinedrugs.getId());
                mediicinestockupdetail.setDrugName(mediicinedrugs.getDrugName());
                BigDecimal b = new BigDecimal(String.valueOf(mediicinedrugs.getPrice()));
                mediicinestockupdetail.setPrice(b.doubleValue());
                mediicinestockupdetail.setProductPic(mediicinedrugs.getPic());
                mediicinestockupdetail.setMedInfo(mediicinedrugs.getPackUnit());
                mediicinestockupdetail.setOutofstock(drug.getQty().toString());
                mediicinestockupdetail.setClaim(drug.getQty().toString());
                mediicinestockupdetail.setQuantity(drug.getQty().toString());
@ -246,6 +252,9 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
        JSONObject result = new JSONObject();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        String conditionSql = "";
        if ("replenisher".equals(role.getCode())) {
            conditionSql += " AND t.create_user = '" + userId + "'\n";
@ -303,6 +312,7 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
        String sql = "SELECT\n" +
                "bu.name AS replenishErName,\n" +
                "tmd.equ_name AS replenishEquName,\n" +
                "tmd.equ_num AS replenishEquNum,\n" +
                "t.id AS id,\n" +
                "t.community AS community,\n" +
                "t.doc_time AS docTime,\n" +
@ -329,7 +339,7 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
                    " AND t.doc_time <= '" + endTime + "'";
        }
        if (!StringUtils.isEmpty(content)){
            conditionSql += " and concat(ifnull(t.`doc_num`,''),ifnull(bu.`name`, '')) like '%" + content + "%'";
            conditionSql += " and concat(ifnull(t.doc_num,''),ifnull(bu.name, '')) like '%" + content + "%'";
        }
        if (!StringUtils.isEmpty(community)){
            conditionSql += " and t.community = '" + community + "'";
@ -337,9 +347,10 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
        if (!StringUtils.isEmpty(state)){
            conditionSql += " and t.state = '" + state + "'";
        }
        sql = sql + conditionSql;
        sql = sql + conditionSql +" order by t.state desc,t.doc_time desc  ";
        List<Map<String,Object>> list=null;
        System.out.print("sql"+sql);
        list = hibenateUtils.createSQLQuery(sql,page,size);
        String countSql = " select " +
@ -394,12 +405,9 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
        }
        JSONObject jsonObject = new JSONObject();
        Mediicinestockup mediicinestockup = upDao.findOne(idstockup);
        //备货单详情页,设备地址,从code,转化为name
        mediicinestockup.setCommunity(hospitalDao.findByCode(mediicinestockup.getCommunity()).getName());
        jsonObject.put("info", upDao.findOne(idstockup));
        jsonObject.put("list", updetailDao.getoutdetail(idstockup));
        List<Mediicinestockupdetail> detailList = updetailDao.getoutdetail(idstockup);
        jsonObject.put("info", mediicinestockup);
        jsonObject.put("list", detailList);
        result.put("msg", jsonObject);
        result.put("response", ConstantUtils.SUCCESS);
        return result;

+ 14 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineUserService.java

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.a2dao.MediicineDeviceDao;
import com.yihu.jw.base.dao.a2dao.MediicineDeviceUserDao;
import com.yihu.jw.base.dao.a2dao.MediicineUserDao;
import com.yihu.jw.base.dao.equipment.WlyyUserAreaDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.util.ConstantUtils;
@ -15,6 +16,7 @@ import com.yihu.jw.entity.a1entity.Mediicinedevice;
import com.yihu.jw.entity.a1entity.Mediicineuser;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.equipment.WlyyUserAreaDO;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
@ -53,6 +55,9 @@ public class MedicineUserService extends BaseJpaService<Mediicineuser, Mediicine
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private WlyyUserAreaDao userAreaDao;
    /**
     * 分页查询补货员信息
@ -68,6 +73,9 @@ public class MedicineUserService extends BaseJpaService<Mediicineuser, Mediicine
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        String sql = "";
        String conditionSql = "";
        //登录者所管理的社区code串
@ -161,7 +169,7 @@ public class MedicineUserService extends BaseJpaService<Mediicineuser, Mediicine
                "\tAND b.enabled = 1\n" +
                "\tAND b.locked = 0\n";
        if (!StringUtils.isEmpty(content)){
            conditionSql += "\tAND CONCAT(IFNULL(b.`mobile`,''),IFNULL(b.`name`,'')) like '%"+ content +"%'";
            conditionSql += "\tAND CONCAT(IFNULL(b.mobile,''),IFNULL(b.name,'')) like '%"+ content +"%'";
        }
        sql = sql + conditionSql;
@ -176,6 +184,8 @@ public class MedicineUserService extends BaseJpaService<Mediicineuser, Mediicine
                    "  1=1 and t.del = 1 and t.user_id = '" + stringObjectMap.get("id").toString() + "'";
            stringObjectMap.put("allocatedDevice", jdbcTemplate.queryForObject(countSql, Integer.class));
            stringObjectMap.put("deviceQty", deviceDao.countAll());
            List<WlyyUserAreaDO> areaDOList =userAreaDao.findAllByUserId(stringObjectMap.get("id").toString());
            stringObjectMap.put("areaList",areaDOList);
        }
        String countSql = " select " +
                "     COUNT(DISTINCT (b.id)) as count " +
@ -212,6 +222,9 @@ public class MedicineUserService extends BaseJpaService<Mediicineuser, Mediicine
                if(isAll) {
                    UserDO user = userDao.findOne(operator);
                    RoleDO role = roleDao.findOne(user.getRoleId());
                    if (role==null){
                        throw new Exception("角色为空!");
                    }
                    String belongCommunitys = "";
                    String tempSql = "";
                    //获取管理员所在社区id字符串

+ 72 - 25
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineWarrayService.java

@ -44,9 +44,44 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
    @Autowired
    private HibenateUtils hibenateUtils;
    public JSONObject getDeviceInfo(String condition,int page,int size){
        JSONObject result = new JSONObject();
        String sql = "SELECT d.id as id,d.equ_num as equNum,d.equ_name as equName," +
                "d.equ_type as equType,d.now_humidity as nowHunidity,d.now_temperature as nowTemperature," +
                "d.abnormal as abnormal,d.log_time as logTime " +
                "FROM t_mediicine_device d where d.belong_community is not NULL ";
        String conditionSql = "";
        if (!StringUtils.isEmpty(condition)){
            conditionSql += " and CONCAT(IFNULL(d.equ_name,''), IFNULL(d.equ_num,'')) like '%" + condition + "%'";
        }
        sql = sql + conditionSql+ "order by d.log_time desc ";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql,page,size);
        String countSql = " select " +
                "     COUNT(DISTINCT (d.id)) as count " +
                "   from " +
                "     t_mediicine_device d " +
                "  where " +
                "  1=1 and d.belong_community is not NULL  " +
                conditionSql;
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
        result.put("total", count);
        result.put("page",page);
        result.put("size",size);
        result.put("list", list);
        return result;
    }
    public JSONObject getTemperature(
            String idDevice, String equType, String netStatus, String lowT, String heightT,
                String content, String startTime, String endTime, int page, int size,String wechatId) throws Exception {
            String equNum, String equType, String netStatus, String lowT, String heightT,
                String content, String startTime, String endTime, int page, int size) throws Exception {
        JSONObject result = new JSONObject();
        String sql = "SELECT\n" +
                "    t.id as id,\n" +
@ -76,25 +111,26 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    t.duration as duration,\n" +
                "    t.exceed as exceed,\n" +
                "    t.humidity as humidity,\n" +
                "    t.temperature as temperature,\n" +
                "    t.other_couont as otherCouont,\n" +
                "    t.plus_couont as plusCouont,\n" +
                "    t.ship_couont as shipCouont,\n" +
                "    t.temperature as temperature,\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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
                "    t_mediicine_warray AS t  where 1=1 and t.type like '%温度%' ";
        String conditionSql = "";
//        conditionSql += " and t.type like '%温度%'";
        if (!StringUtils.isEmpty(idDevice)){
            conditionSql += " and t.id_device = '" + idDevice + "'";
        if (!StringUtils.isEmpty(equNum)){
            conditionSql += " and t.equ_num = '" + equNum + "'";
        }
        if (!StringUtils.isEmpty(equType)){
            conditionSql += " and t.equ_type = '" + equType + "'";
@ -116,7 +152,7 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                    " AND t.log_time <= '" + endTime + "'";
        }
        sql = sql + conditionSql;
        sql = sql + conditionSql+ "order by t.log_time desc ";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql,page,size);
@ -130,9 +166,6 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                conditionSql;
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
        for (Map<String,Object> map:list){
        }
        result.put("count", count);
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));
        return result;
@ -179,7 +212,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -272,7 +306,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -360,7 +395,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -448,7 +484,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -534,7 +571,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -622,7 +660,8 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                "    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.update_user_name as updateUserName,\n" +
                "    t.remark as remark\n" +
                "FROM\n" +
                "    t_mediicine_warray AS t where 1=1";
@ -745,26 +784,34 @@ public class MedicineWarrayService extends BaseJpaService<Mediicinewarray, Medii
                    type="温度异常";
                }
            }
        }else {
            type="温度正常";
        }
        mediicinedevice.setNowTemperature(temperature+"");
        if (!StringUtils.isEmpty(mediicinedevice.getWaringHumidityHeight())&&!StringUtils.isEmpty(mediicinedevice.getWaringHumidityLow())){
            Float humidityHeight = Float.parseFloat(mediicinedevice.getWaringHumidityHeight());
            Float humidityLow = Float.parseFloat(mediicinedevice.getWaringHumidityLow());
            if (mediicinedevice.getHumiditycontrol().equalsIgnoreCase("1")){
                if (humidity!=null&&(humidity>humidityHeight||humidity<humidityLow)){
                    if (StringUtils.isEmpty(type)){
                        type += "湿度异常";
                        type += "/湿度异常";
                    }else {
                        type +="/湿度异常";
                    }
                }
            }
        }
        if (!StringUtils.isEmpty(type)) {
            Mediicinewarray mediicinewarray = medicinedeviceService.uploadDeviceInfo(equNum, temperature, humidity, type);
            result.put("msg",mediicinewarray);
            return result;
        }
        result.put("msg",null);
        }else {
            type+="/湿度正常";
        }
        mediicinedevice.setAbnormal(type);
        mediicinedevice.setLogTime(new Date());
        mediicinedevice.setNowHumidity(humidity+"");
        mediicinedevice.setNetworkStatus("1");
        mediicinedevice.setSaleStatus("1");
        deviceDao.save(mediicinedevice);
        Mediicinewarray mediicinewarray = medicinedeviceService.uploadDeviceInfo(equNum, temperature, humidity, type, null, null, null, null);
        result.put("msg",mediicinewarray);
        return result;
    }
}

+ 140 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedevicePrintMessageService.java

@ -0,0 +1,140 @@
package com.yihu.jw.base.service.a3service;
import com.yihu.jw.base.dao.a2dao.*;
import com.yihu.jw.base.dao.equipment.WlyyUserAreaDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.entity.a1entity.*;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.equipment.WlyyUserAreaDO;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2021/9/23.
 */
@Service
public class MedicinedevicePrintMessageService extends BaseJpaService<MedicinedevicePrintMessageService, MedicineDevicePrintMessageDao> {
    @Autowired
    private MedicineDevicePrintMessageDao printMessageDao;
    @Autowired
    private MediicineDeviceDao mediicineDeviceDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private UserDao userDao;
    @Autowired
    private RoleDao roleDao;
    //{"community":"社区名称","phone":"客服电话","equName":"设备名称","equNum":"设备编号","saleTime":"销售日期","shipTime":"取药时间","public":"公共信息","coding":"自编码","specifications":"规格","batchNo":"批次号","manufacturer":"生产厂家","validTime":"有效期","sourceCode":"溯源码","publicName":"药品通用名称","dosage":"剂型","holder":"上市许可持有人","approvalNumber":"批准文号"}
    /**
     * 保存和修改设备打印设置
     * @param printMessage
     * @param flag(0全部,1单个)
     * @return
     * @throws Exception
     */
    public MedicineDevicePrintMessage saveAndUpdate(MedicineDevicePrintMessage printMessage,int flag) throws Exception {
        if (flag==0){
            printMessageDao.deleteAll();
            List<Mediicinedevice> mediicinedeviceList = mediicineDeviceDao.selectByBelongComminity();
            for (Mediicinedevice mediicinedevice:mediicinedeviceList){
                MedicineDevicePrintMessage medicineDevicePrintMessage = new MedicineDevicePrintMessage();
                medicineDevicePrintMessage = printMessage;
                medicineDevicePrintMessage.setId(null);
                medicineDevicePrintMessage.setDeviceId(mediicinedevice.getEquNum());
                printMessageDao.save(medicineDevicePrintMessage);
            }
            return printMessage;
        }else {
            if (printMessageDao.findDeviceId(printMessage.getDeviceId())==null){
                return printMessageDao.save(printMessage);
            }else {
                throw new Exception("该设备打印设置已存在!");
            }
        }
    }
    /**
     * 根据id查询单个设备打印详情
     * @param id
     * @return
     */
    public MedicineDevicePrintMessage selectById(String id){
        return printMessageDao.findOne(id);
    }
    /**
     *
     * @param condition
     * @param page
     * @param size
     * @return
     */
    public List<Map<String,Object>> selectByCondition(String condition,Integer page,Integer size,String uuid) throws Exception {
        UserDO user = userDao.findOne(uuid);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空");
        }
        String conditionSql = "";
        //市管理员
        if ("saasAdmin".equals(role.getCode())) {
            conditionSql = "SELECT\n" +
                    "\t`code`\tas community\n" +
                    "FROM\n" +
                    "\tdm_hospital\n" +
                    "WHERE\n" +
                    "\tdel = 1";
        }
        //区域管理员
        if ("regionAdmin".equals(role.getCode())) {
            conditionSql = "SELECT\n" +
                    "\tdh.`code` 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 = '" + uuid + "'\n" +
                    "AND t.del = 1\n" +
                    "AND dh.del = 1";
        }
        //社区管理员
        if ("communityAdmin".equals(role.getCode())) {
            conditionSql = "SELECT\n" +
                    "t.hospital AS community\n" +
                    "FROM\n" +
                    "wlyy_user_area AS t\n" +
                    "WHERE\n" +
                    "t.user_id = '" + uuid + "'\n" +
                    "AND t.del = 1";
        }
        String sql = " SELECT d.equ_name as equName,d.equ_num as equNum,pm.picture,pm.remark_end as remarkEnd,pm.id as id from  t_mediicine_device_print_message pm LEFT JOIN t_mediicine_device d ON pm.device_id = d.equ_num where 1=1 and d.belong_community IN ("+conditionSql+") ";
        if (StringUtils.isNoneBlank(condition)){
            sql += " and (d.equ_name LIKE '%"+condition+"%' OR d.equ_num LIKE '%"+condition+"%')";
        }
        sql+=" order by pm.create_time desc ";
        List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql,page,size);
        return mapList;
    }
}

+ 199 - 21
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.service.a3service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -16,6 +17,9 @@ import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
@ -85,6 +89,12 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    @Autowired
    private MediicineorderDao mediicineorderDao;
    @Autowired
    private MediicineorderdetailDao mediicineorderdetailDao;
    @Autowired
    private MedicineShipmentLogDao medicineShipmentLogDao;
    /**
     * 设备出货服务,创建设备,创建库存内容
@ -150,8 +160,10 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                inventory.setCargoCapacity(mediicinedevice.getCargoCapacity());
                //默认下架
                inventory.setShelfStatus("0");
                //默认货道关闭
                //默认货道关闭(0)---->后续更改为开启的(1)
                inventory.setCargoState("1");
                //设备初始化库存,默认货道是正常的
                inventory.setFaultState("0");
                inventoryDao.save(inventory);
            }
        }
@ -459,6 +471,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        if(networkStatus.equalsIgnoreCase("0")){
            mediicinedevice.setSaleStatus("2");
        }else {
            mediicinedevice.setSaleStatus("1");
        }
        mediicinedevice.setNetworkStatus(networkStatus);
        this.save(mediicinedevice);
        result.put("response",ConstantUtils.SUCCESS);
@ -473,7 +490,8 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public Mediicinewarray  uploadDeviceInfo(String equNum, Float temperature,Float humidity,String type){
    public Mediicinewarray  uploadDeviceInfo(String equNum, Float temperature,Float humidity,String type,
                                             String remark, Integer shipCouont, Integer plusCouont, Integer otherCouont){
        Mediicinewarray mediicinewarray = new Mediicinewarray();
        Mediicinedevice mediicinedevice = deviceDao.findMediicinedeviceByEquNum(equNum);
        mediicinewarray.setEquNum(mediicinedevice.getEquNum());
@ -488,6 +506,18 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        mediicinewarray.setEquType(mediicinedevice.getEquType());
        mediicinewarray.setEquInfo(mediicinedevice.getEquInfo());
        mediicinewarray.setLogTime(new Date());
        if (shipCouont != null) {
            mediicinewarray.setShipCouont(shipCouont + "");
        }
        if (plusCouont != null) {
            mediicinewarray.setPlusCouont(plusCouont+ "");
        }
        if (otherCouont != null) {
            mediicinewarray.setOtherCouont(otherCouont + "");
        }
        if (remark != null) {
            mediicinewarray.setRemark(remark);
        }
        return mediicinewarrayDao.save(mediicinewarray);
    }
@ -859,11 +889,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                "    t.layer as layer,\n" +
                "    t.wayer as wayer\n" +
                "FROM\n" +
                "    t_mediicine_device AS t where 1=1 AND t.del = 1\n";
                "    t_mediicine_device AS t where 1=1 AND t.del = 1 \n";
        String conditionSql = "";
        if (!StringUtils.isEmpty(content)){
            conditionSql += " AND CONCAT(IFNULL(t.`equ_name`,''), IFNULL(t.`equ_num`,'')) like '%" + content + "%'";
            conditionSql += " AND CONCAT(IFNULL(t.equ_name,''), IFNULL(t.equ_num,'')) like '%" + content + "%'";
        }
        if (!StringUtils.isEmpty(equClass)){
            conditionSql += " AND t.equ_class = '"+equClass + "'";
@ -878,7 +908,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            conditionSql += " AND t.sale_status = '" + saleStatus + "'";
        }
        sql = sql + conditionSql;
        sql = sql + conditionSql+ " and t.belong_community is not null ";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql,page,size);
@ -1482,6 +1512,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        JSONObject jsonObject = new JSONObject();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        //设备总数
        int count = 0;
        //在线设备
@ -1821,6 +1854,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        List<Map<String, Object>> deviceList = null;
        if ("replenisher".equals(role.getCode())) {
            //补货员所分配的设备
@ -2076,6 +2112,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        List<Map<String, Object>> deviceList = null;
        //查询控制语句
        String conditionSql = "";
@ -2301,11 +2340,14 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    }
    public JSONObject getDeviceInventoryRecordListWithUserId(String type, String userId, int page, int size) throws Exception {
    public JSONObject getDeviceInventoryRecordListWithUserId(String type,String deviceId, String userId, int page, int size) throws Exception {
        JSONObject result = new JSONObject();
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        List<Map<String, Object>> deviceList = null;
        //查询控制语句
        String conditionSql = "";
@ -2435,18 +2477,14 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                    "WHERE 1=1 AND t.del = 1\n";
        }
        conditionSql += "AND t.belong_community IS NOT NULL\n";
        sql = sql + conditionSql;
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(deviceId)){
            sql +=" and t.id ='"+deviceId+"'  ";
        }
        conditionSql += " AND t.belong_community IS NOT NULL\n";
        sql = sql + conditionSql;
        deviceList = hibenateUtils.createSQLQuery(sql, page, size);
        Map<String, String> equTypeMap = new HashMap<>();
        equTypeMap.put("1", "测试类型1");
        equTypeMap.put("2", "测试类型2");
        equTypeMap.put("3", "测试类型3");
        for (Map<String, Object> stringObjectMap : deviceList) {
            if(!StringUtils.isEmpty(stringObjectMap.get("equType"))){
                stringObjectMap.put("equTypeName", equTypeMap.get(stringObjectMap.get("equType")));
            }
            if(!StringUtils.isEmpty(stringObjectMap.get("networkStatus"))){
                if ("1".equals(stringObjectMap.get("networkStatus").toString())) {
                    stringObjectMap.put("networkStatusName", "在线");
@ -2477,10 +2515,20 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                    stringObjectMap.put("cardStatusName", "未知");
                }
            }
            stringObjectMap.put("children",
                    inventoryRecordDao.findMedicineDrugInventoryRecordsByDeviceIdAndEquNumAndType(
                            stringObjectMap.get("id").toString(),
                            stringObjectMap.get("equNum").toString(), type));
            List<MedicineDrugInventoryRecord> drugInventoryRecords =inventoryRecordDao.findMedicineDrugInventoryRecordsByDeviceIdAndEquNumAndType(
                    stringObjectMap.get("id").toString(),
                    stringObjectMap.get("equNum").toString(), type);
            if (drugInventoryRecords!=null&&drugInventoryRecords.size()!=0){
                MedicineDrugInventoryRecord drugInventoryRecord = drugInventoryRecords.get(0);
                stringObjectMap.put("lastTime",DateUtil.dateToStrLong(drugInventoryRecord.getCreateTime()));
                stringObjectMap.put("lastQuanty",drugInventoryRecord.getQuantity());
                UserDO userDO = userDao.findById(drugInventoryRecord.getCreateUser());
                stringObjectMap.put("createName",userDO.getName());
            }else {
                stringObjectMap.put("lastTime",null);
                stringObjectMap.put("lastQuanty",null);
                stringObjectMap.put("createName",null);
            }
        }
        String countSql = " select " +
@ -2498,6 +2546,59 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        return result;
    }
    public PageEnvelop selectInventoryRecordByDeviceId(String id ,String deviceId, String layerNo, String wayerNo, String type, String startTime, String endTime, String drugName, int page, int size){
        PageEnvelop listEnvelop = new PageEnvelop();
        String sql = "SELECT\n" +
                "\tDATE_FORMAT(dir.create_time,'%Y-%m-%d %H:%i:%S') as createTime,\n" +
                "\td.drug_name as drugName,\n" +
                "\tu.name,\n" +
                "\tdir.layer_no as layerNo,\n" +
                "\tdir.wayer_no as wayerNo,\n" +
                "\tdir.merge_cargo as mergeCargo,\n" +
                "\tdir.merge_state as mergeState\n" +
                "FROM\n" +
                "\tt_medicine_drug_inventory_record dir\n" +
                "LEFT JOIN t_mediicine_drugs d ON dir.drug_id = d.id\n" +
                "LEFT JOIN base_user u ON u.id = dir.create_user\n" +
                "where dir.device_id= '"+deviceId+"' ";
        String condition = "";
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(layerNo)){
            condition +=" and dir.layer_no= '"+layerNo+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(id)){
            condition +=" and dir.id= '"+id+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(wayerNo)){
            condition +=" and dir.wayer_no= '"+wayerNo+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(type)){
            condition +=" and dir.type= '"+type+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(startTime)){
            condition +=" and dir.create_time>= '"+startTime+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(endTime)){
            condition +=" and dir.create_time<= '"+endTime+"'";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(drugName)){
            condition +=" and d.drug_name like '%"+drugName+"%'";
        }
        sql =sql+ condition+" ORDER BY dir.create_time DESC";
        List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql,page,size);
        String sqlCount = "SELECT\n" +
                "\tCOUNT(1) as count \n" +
                "FROM\n" +
                "\tt_medicine_drug_inventory_record dir\n" +
                "LEFT JOIN t_mediicine_drugs d ON dir.drug_id = d.id\n" +
                "LEFT JOIN base_user u ON u.id = dir.create_user "+
                "where dir.device_id= '"+deviceId+"' ";
        int count = jdbcTemplate.queryForObject(sqlCount+condition,Integer.class);
        listEnvelop.setPageSize(size);
        listEnvelop.setTotalPage(count);
        listEnvelop.setCurrPage(page);
        listEnvelop.setDetailModelList(mapList);
        return listEnvelop;
    }
    /**
     * 获取初始化设备列表
     * @param content
@ -3206,7 +3307,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                    "t.price AS price,\n" +
                    "t.pic AS pic,\n" +
                    "t.equ_num AS equNum,\n" +
                    "t.`merge` AS `merge`" +
                    "t.`merge` AS `merge`,\n" +
                    "t.cargo_state AS cargoState,\n" +
                    "t.fault_state AS faultState\n" +
                    "FROM\n" +
                    "\tt_mediicinecabinet_inventory t\n" +
                    "WHERE\n" +
@ -3314,7 +3417,8 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                    "t.pic AS pic,\n" +
                    "t.equ_num AS equNum,\n" +
                    "t.`merge` AS `merge`,\n" +
                    "t.cargo_state AS cargoState\n" +
                    "t.cargo_state AS cargoState,\n" +
                    "t.fault_state AS faultState\n" +
                    "FROM\n" +
                    "\tt_mediicinecabinet_inventory t\n" +
                    "WHERE\n" +
@ -3475,6 +3579,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        MediicinecabinetInventory inventory =  inventoryDao.findOne(id);
        boolean cargoCapacityChanged = false;
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(qty)){
            if (Integer.parseInt(qty) > 99) {
                throw new Exception("库存数量最多99个,请重新设置");
            }
            //有药品时的补货
            MedicineDrugInventoryRecord inventoryRecord = new MedicineDrugInventoryRecord();
            inventoryRecord.setDeviceId(inventory.getIdDevice());
@ -3628,6 +3735,24 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    }
    /**
     * 物联网大屏单个设备信息数据
     * @return
     */
    public List<Mediicineorder> getDeviceOrderInfo(String deviceId,String startTime,String endTime) throws ParseException {
        JSONObject jsonObject = new JSONObject();
        Mediicinedevice mediicinedevice = deviceDao.findOne(deviceId);
        Date startDate = DateUtil.strToDateLong(startTime);
        Date endDate = DateUtil.strToDateLong(endTime);
        List<Mediicineorder> mediicineorderList = mediicineorderDao.findByEquNumAndDate(mediicinedevice.getEquNum(),startDate,endDate);
        for (Mediicineorder mediicineorder:mediicineorderList){
            List<Mediicineorderdetail> mediicineorderdetails = mediicineorderdetailDao.findMediicineorderdetailsByIdOrder(mediicineorder.getId());
            mediicineorder.setMediicineorderdetails(mediicineorderdetails);
        }
        return mediicineorderList;
    }
    /**
     * 总览-设备
     * @param level 1、市级、2、区级、3、社区
@ -3846,4 +3971,57 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        object.put("drugTotal",quantity);
        return object;
    }
    /**
     * 更新出货单图片-出货图片
     * @param shipmentLogId
     * @param picPath
     * @return
     */
    public Boolean updateShipmentLogPic(String shipmentLogId, String picPath) {
        MedicineShipmentLog shipmentLog = medicineShipmentLogDao.findOne(shipmentLogId);
        if (shipmentLog == null) {
            return false;
        }
        shipmentLog.setPic(picPath);
        medicineShipmentLogDao.save(shipmentLog);
        return true;
    }
    /**
     * 更新设备货道状态
     * @param equNum
     * @param layerNo
     * @param wayerNo
     * @param state
     * @return
     */
    public Boolean updateDeviceCargoState(String equNum, String layerNo, String wayerNo, String state) {
        MediicinecabinetInventory inventory = inventoryDao.findMediicinecabinetInventoryByEquNumAndLayerNoAndWayerNo(equNum, layerNo, wayerNo);
        if (inventory == null) {
            return false;
        }
        //故障
        if ("1".equals(state)) {
            if ("1".equals(inventory.getCargoState())) {
                //开启--->关闭
                inventory.setCargoState("0");
            }
            inventory.setFaultState("1");
        }
        //正常
        if ("0".equals(state)) {
            inventory.setFaultState("0");
        }
        inventoryDao.save(inventory);
        return true;
    }
    public Mediicinedevice findByEquNum(String equNum){
        return deviceDao.findMediicinedeviceByEquNum(equNum);
    }
}

+ 9 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java

@ -123,6 +123,15 @@ public class MenuService extends BaseJpaService<MenuDO, MenuDao> {
        return menuDao.isExistName(name);
    }
    /**
     * 父级菜单名称是否存在
     * @param name
     * @return
     */
    public int isExistNameAndParentId(String name,String parentId){
        return menuDao.isExistNameAndParentId(name,parentId);
    }
    public MenuDO findOne(String id){
        return menuDao.findOne(id);
    }

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleService.java

@ -58,4 +58,8 @@ public class RoleService extends BaseJpaService<RoleDO, RoleDao> {
        }
        return false;
    }
    public List<RoleDO> selectRoleList(){
        return  roleDao.findByStatus(1);
    }
}

+ 153 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java

@ -10,6 +10,8 @@ import com.yihu.jw.base.dao.role.BaseRoleMenuDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.saas.SaasDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.service.equipment.WlyyUserAreaService;
import com.yihu.jw.base.service.equipment.WlyyUserEquipmentService;
import com.yihu.jw.base.service.org.*;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
@ -77,6 +79,10 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
    @Autowired
    private WlyyUserAreaDao userAreaDao;
    @Autowired
    private WlyyUserAreaService userAreaService;
    @Autowired
    private WlyyUserEquipmentService equipmentService;
    @Autowired
    private WlyyUserEquipmentDao userEquipmentDao;
    
    @Autowired
@ -556,6 +562,8 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
                userAreaDO=userAreaDao.save(userAreaDO);
                list.add(userAreaDO);
            }
        }else {
            userAreaDao.deleteByUserId(userDO.getId());
        }
        result.put("area",list);
@ -1168,4 +1176,149 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        return result;
    }
    public String addUserByIjk(JSONObject doctorJson) {
        String idcard = doctorJson.getString("idcard");
        String mobile = doctorJson.getString("mobile");
        if (StringUtils.isBlank(idcard)) {
            return "I健康账户信息不完整,添加失败";
        }
        UserDO userDO = userDao.findByMobile(mobile);
        if (userDO != null) {
            userDO.setSaasId("808080eb7bc87123017bf16ba0ad0046");
            userDO.setName(doctorJson.getString("name"));
            userDO.setIdcard(doctorJson.getString("idcard"));
            userDO.setUsername(doctorJson.getString("mobile"));
            userDO.setMobile(doctorJson.getString("mobile"));
            if (doctorJson.getInteger("sex") == 1) {
                userDO.setGender(UserDO.Gender.male);
            } else if (doctorJson.getInteger("sex") == 2) {
                userDO.setGender(UserDO.Gender.female);
            }
            //认证信息设置
            String salt = randomString(5);
            String pw = idcard.substring(idcard.length() - 6);
            userDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            userDO.setSalt(salt);
            userDO.setEnabled(1);
            userDO.setLocked(0);
            userDO.setCreateTime(new Date());
            userDO.setUpdateTime(new Date());
            userDO = userDao.save(userDO);
            //18补货员19社区药柜管理员20药柜区域管理员21药柜超级管理员
            String expandLevel = doctorJson.getString("expandLevel");
            RoleDO roleDO = roleDao.findOne(expandLevel);
            userDO.setRoleId(roleDO.getId());
            userDO = userDao.save(userDO);
            List<WlyyUserAreaDO> userAreaDOList = userAreaDao.findAllByUserId(userDO.getId());
            //先删除
            userAreaService.delete(userAreaDOList);
            WlyyUserAreaDO userAreaDO = new WlyyUserAreaDO();
            userAreaDO.setUserId(userDO.getId());
            userAreaDO.setCity(doctorJson.getString("city"));
            userAreaDO.setCityName(doctorJson.getString("cityName"));
            userAreaDO.setTown(doctorJson.getString("town"));
            userAreaDO.setTownName(doctorJson.getString("townName"));
            userAreaDO.setHospital(doctorJson.getString("hospital"));
            userAreaDO.setHospitalName(doctorJson.getString("hospitalName"));
            userAreaDO.setUpdateTime(new Date());
            userAreaDO.setCreateTime(new Date());
            userAreaDO.setDel(1);
            userAreaDao.save(userAreaDO);
            if (roleDO.getCode().equalsIgnoreCase("replenisher")) {
                String sql = "select d.id as id,d.equ_name as name from t_mediicine_device d where d.belong_community ='" + doctorJson.getString("hospital") + "' ";
                List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
                List<WlyyUserEquipmentDO> equipmentDOList = userEquipmentDao.findAllByUserId(userDO.getId());
                equipmentService.delete(equipmentDOList);
                for (Map<String, Object> map : mapList) {
                    WlyyUserEquipmentDO equipmentDO = new WlyyUserEquipmentDO();
                    String id = map.get("id").toString();
                    String name = map.get("name") == null ? "" : map.get("name").toString();
                    equipmentDO.setEquipmentId(id);
                    equipmentDO.setEquipmentName(name);
                    equipmentDO.setUserId(userDO.getId());
                    equipmentDO.setDel(1);
                    equipmentDO.setCityName(doctorJson.getString("cityName"));
                    equipmentDO.setCity(doctorJson.getString("city"));
                    equipmentDO.setTown(doctorJson.getString("town"));
                    equipmentDO.setTownName(doctorJson.getString("townName"));
                    equipmentDO.setHospital(doctorJson.getString("hospital"));
                    equipmentDO.setHospitalName(doctorJson.getString("hospitalName"));
                    equipmentDO.setCreateTime(new Date());
                    equipmentDO.setUpdateTime(new Date());
                    userEquipmentDao.save(equipmentDO);
                }
            }
        } else {
            //存储医生全科医生信息
            userDO = new UserDO();
            userDO.setSaasId("808080eb7bc87123017bf16ba0ad0046");
            userDO.setName(doctorJson.getString("name"));
            userDO.setIdcard(doctorJson.getString("idcard"));
            userDO.setUsername(doctorJson.getString("mobile"));
            userDO.setMobile(doctorJson.getString("mobile"));
            if (doctorJson.getInteger("sex") == 1) {
                userDO.setGender(UserDO.Gender.male);
            } else if (doctorJson.getInteger("sex") == 2) {
                userDO.setGender(UserDO.Gender.female);
            }
            //认证信息设置
            String salt = randomString(5);
            String pw = idcard.substring(idcard.length() - 6);
            userDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            userDO.setSalt(salt);
            userDO.setEnabled(1);
            userDO.setLocked(0);
            userDO.setCreateTime(new Date());
            userDO.setUpdateTime(new Date());
            userDO = userDao.save(userDO);
            //18补货员19社区药柜管理员20药柜区域管理员21药柜超级管理员
            String expandLevel = doctorJson.getString("expandLevel");
            RoleDO roleDO = roleDao.findOne(expandLevel);
            userDO.setRoleId(roleDO.getId());
            userDO = userDao.save(userDO);
            List<WlyyUserAreaDO> userAreaDOList = userAreaDao.findAllByUserId(userDO.getId());
            //先删除
            userAreaService.delete(userAreaDOList);
            WlyyUserAreaDO userAreaDO = new WlyyUserAreaDO();
            userAreaDO.setUserId(userDO.getId());
            userAreaDO.setCity(doctorJson.getString("city"));
            userAreaDO.setCityName(doctorJson.getString("cityName"));
            userAreaDO.setTown(doctorJson.getString("town"));
            userAreaDO.setTownName(doctorJson.getString("townName"));
            userAreaDO.setHospital(doctorJson.getString("hospital"));
            userAreaDO.setHospitalName(doctorJson.getString("hospitalName"));
            userAreaDO.setUpdateTime(new Date());
            userAreaDO.setCreateTime(new Date());
            userAreaDO.setDel(1);
            userAreaDao.save(userAreaDO);
            if (roleDO.getCode().equalsIgnoreCase("replenisher")) {
                String sql = "select d.id as id,d.equ_name as name from t_mediicine_device d where d.belong_community ='" + doctorJson.getString("hospital") + "' ";
                List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
                List<WlyyUserEquipmentDO> equipmentDOList = userEquipmentDao.findAllByUserId(userDO.getId());
                equipmentService.delete(equipmentDOList);
                for (Map<String, Object> map : mapList) {
                    WlyyUserEquipmentDO equipmentDO = new WlyyUserEquipmentDO();
                    String id = map.get("id").toString();
                    String name = map.get("name") == null ? "" : map.get("name").toString();
                    equipmentDO.setEquipmentId(id);
                    equipmentDO.setEquipmentName(name);
                    equipmentDO.setUserId(userDO.getId());
                    equipmentDO.setDel(1);
                    equipmentDO.setCityName(doctorJson.getString("cityName"));
                    equipmentDO.setCity(doctorJson.getString("city"));
                    equipmentDO.setTown(doctorJson.getString("town"));
                    equipmentDO.setTownName(doctorJson.getString("townName"));
                    equipmentDO.setHospital(doctorJson.getString("hospital"));
                    equipmentDO.setHospitalName(doctorJson.getString("hospitalName"));
                    equipmentDO.setCreateTime(new Date());
                    equipmentDO.setUpdateTime(new Date());
                    userEquipmentDao.save(equipmentDO);
                }
            }
        }
        return "添加成功";
    }
}

+ 7 - 1
svr/svr-base/src/main/resources/application.yml

@ -182,6 +182,9 @@ testPattern:
  remote_inner_url: 172.16.100.240:10023/open/fileUpload/upload_stream
im:
  im_list_get: http://172.26.0.105:3000/
medicine:
  socketUrl: http://yik.ab-inbev.vip/c/upws/send
---
spring:
  profiles: iottest
@ -782,4 +785,7 @@ testPattern: #文件服务器上传配置 0本地,1.I健康,2.内网调用
  sign: 1
  remote_inner_url: 172.16.100.240:10023/open/fileUpload/upload_stream
im:
  im_list_get: http://127.0.0.1:3000/
  im_list_get: http://127.0.0.1:3000/
medicine:
  socketUrl: https://zb.xmtyw.cn/cabinet/medicine/upws/send

+ 1 - 1
svr/svr-base/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-base-cjs
    name: svr-base
  cloud:
    config:
      failFast: true